スローされた例外がハンドリングされないことによりプロセスが終了する場合、終了ステータスとして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