スローされた例外がハンドリングされないことによりプロセスが終了する場合、終了ステータスとして0
以外の値が自動的に設定されます。 例外による終了ステータスはMainメソッドの型がvoid
の場合でも設定されます。
ハンドリングされない例外によりプロセスを終了する
using System;
using System.IO;
class Sample {
static void Main()
{
// ファイル'sample.txt'の有無を調べる
if (File.Exists("sample.txt")) {
// ファイルがある場合は何らかの処理を行うと仮定する
}
else {
throw new FileNotFoundException("ファイルがありません。", "sample.txt");
}
}
}
実行結果
>dotnet run Unhandled exception. System.IO.FileNotFoundException: ファイルがありません。 File name: 'sample.txt' at Sample.Main() >echo %ERRORLEVEL% -532462766
実行結果
>csc /nologo test.cs && test.exe ハンドルされていない例外: System.IO.FileNotFoundException: ファイルがありません。 場所 Sample.Main() >echo %ERRORLEVEL% -532462766
実行結果
$dotnet run Unhandled exception. System.IO.FileNotFoundException: ファイルがありません。 File name: 'sample.txt' at Sample.Main() $echo $? 134
実行結果
$mcs test.cs && mono test.exe Unhandled Exception: System.IO.FileNotFoundException: ファイルがありません。 File name: 'sample.txt' at Sample.Main () <0x412c2d50 + 0x00067> in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: ファイルがありません。 File name: 'sample.txt' at Sample.Main () <0x412c2d50 + 0x00067> in <filename unknown>:0 $echo $? 1