main からデフォルトの int 値を返したい。
次の点を考慮してください。
using System;
class Class1
{
static int Main(string[] args)
{
int intReturnCode = 1;
int intRandNumber;
Random myRandom = new Random();
intRandNumber = myRandom.Next(0,2);
if(intRandNumber ==1)
{
throw new Exception("ErrorError");
}
return intReturnCode;
}
}
例外に到達すると、リターンコードを設定できません。
main 内にデフォルトの戻りコードを持つことは可能ですか?
明確化:未処理の例外をスローするプログラムがあります。アプリケーションを try catch 内に配置していますが、一部のエラー (おそらくメモリ不足、スタックオーバーフローなど) がまだ発生しており、アプリケーションが本番環境で失敗しています。
これを修正するために、未処理の例外をキャプチャするコードを追加しました。
これはメインに追加されました:
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException);
そして今、未処理の例外が発生したときに到達するこのメソッドがあります。
public static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//here's how you get the exception
Exception exception = (Exception)e.ExceptionObject;
//bail out in a tidy way and perform your logging
}
問題は、私はもうメインにいないので、ゼロ以外の終了コードで終了したいということです。