再帰呼び出しに終了条件(ベースケース)が無いと、呼び出しスタックを使い果たしてクラッシュします。この例外は try-catch で捕まえられず、プロセスごと強制終了します。
出るコード
static int Factorial(int n)
{
return n * Factorial(n - 1); // 終了条件が無い
}
エラーメッセージ
Process is terminated due to StackOverflowException.
直し方
再帰には必ず終了条件を書きます(if (n <= 1) return 1;)。深い再帰が想定されるならループに書き換えることも検討します。