スローされた例外がハンドリングされないことによりプロセスが終了する場合、終了ステータスとして0以外の値が自動的に設定されます。 例外による終了ステータスはMainメソッドの型がvoidの場合でも設定されます。

ハンドリングされない例外によりプロセスを終了する
Imports System
Imports System.IO

Class Sample
  Shared Sub Main()
    ' ファイル'sample.txt'の有無を調べる
    If File.Exists("sample.txt") Then
      ' ファイルがある場合は何らかの処理を行うと仮定する
    Else
      Throw New FileNotFoundException("ファイルがありません。", "sample.txt")
    End If
  End Sub
End Class
実行結果
>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