.NETでは例外のスローによって異常の発生とその原因を通知することが多いため、終了ステータスを用いることはあまりありませんが、終了ステータスを返すことはできます。
プロセスの終了ステータスを親プロセスに通知するには、Main
メソッドの戻り値をint
/Integer
、非同期の場合はTask<int>
にし、Main
メソッドの戻り値によって終了ステータスを返します。
Environment.Exitメソッドを使うことでも終了ステータスの設定を行うことができます。 このメソッドはexit
システムコールに似たもので、終了ステータスを設定すると同時にプロセスを即座に終了します。
終了ステータスの設定のみを行いたい場合は、Environment.ExitCodeプロパティを設定します。 Environment.Exitメソッドとは異なり、このプロパティに終了ステータスを設定してもプロセスの実行は継続します。
Environment.ExitCodeプロパティで終了ステータスを設定する
Imports System
Imports System.IO
Class Sample
Shared Sub Main()
' ファイル'sample.txt'の有無を調べる
If File.Exists("sample.txt") Then
' ファイルがある場合は何らかの処理を行うと仮定する
Environment.ExitCode = 0 ' 正常終了
Else
Console.Error.WriteLine("ファイルがありません。")
Environment.ExitCode = 1 ' 異常終了
End If
' Environment.ExitCodeを設定した後でもプロセスの実行は継続する
Console.WriteLine("Hello, world!")
End Sub
End Class