このメッセージはCLRによって表示されます。このコードは、SSCLI20ディストリビューションのclr / src / vm/eepolicy.cppソースコードファイルで確認できます。
void DisplayStackOverflowException()
{
PrintToStdErrA("\n");
PrintToStdErrA("Process is terminated due to StackOverflowException.\n");
}
これは、EEPolicy :: HandleFatalStackOverflow()メソッドによって呼び出されます。表示される唯一の理由は、コンソールモードのアプリを実行しているため、stderrへの出力がコンソールウィンドウに表示されるためです。また、Windowsエラー報告(WER)自体がアプリを終了していない場合にのみ表示されます。
この例外をインターセプトするオプションはありません。マネージコードを安全に実行するにはスタックスペースが少なすぎるため、CLRはマネージコードの実行を続行できません。DisplayStackOverflowException()呼び出し後のコード行は次のとおりです。
TerminateProcess(GetCurrentProcess(), COR_E_STACKOVERFLOW);