-1

异常后无法执行代码,正在打印

cccc

但不打印

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。

如果它抛出异常并且全局处理程序捕获它,它不会在异常点恢复,因为它不知道如何。

因此,线索就在名称中,它用于未处理的异常(未捕获),通常用于日志记录和优雅清除,而不是 C# 等效的 Visual Basics Resume on Error 机制。

于 2015-10-06T09:23:45.053 回答