-1

例外後にコードを実行できません。印刷中です

ccccc

しかし、印刷されません

AFTER_EXCEPTION

コードはキャッチされた例外を示しており、その後存在します。

static void Main(string[] args)
{      
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler); // using System.Diagnostics;

    //   Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnThreadException);

    Process p = Process.GetProcessById(1000);

    Console.WriteLine("AFTER_EXCEPTION");

    Console.ReadLine();
}

static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
    Console.WriteLine("cccc");

    Exception temp = (Exception)args.ExceptionObject;
    Console.WriteLine("MyHandler caught : " + temp.Message);
    Console.WriteLine("MyHandler caught : " + temp.TargetSite);           
}     
4

1 に答える 1

-1

グローバルな例外ハンドラーをセットアップするのは良いことですが、それでも C# のメカニズムを使用する必要があります。try...catch です。

例外がスローされ、グローバル ハンドラーがそれをキャッチした場合、方法がわからないため、例外の時点で再開されません。

したがって、手がかりは名前にあり、(キャッチされない) 未処理の例外のためのものであり、通常はログ記録と適切なクリアダウンに使用され、Visual Basic の Resume on Error メカニズムに相当する C# ではありません。

于 2015-10-06T09:23:45.053 に答える