AppDomain.UnhandledException不处理WebRequset回调中的异常

时间:2012-05-29 10:10:28

标签: .net exception callback webrequest

昨天我遇到了WebRequest和AppDomain.UnhandledException:

的奇怪行为
AppDomain.CurrentDomain.UnhandledException += (a, b) =>
            {
                Console.WriteLine("gotcha!");
            };
var request = WebRequest.Create("http://google.com");
request.BeginGetResponse((async) =>
            {
                Console.WriteLine("request finished");
                throw new Exception("done"); // exception does
                //not trigger AppDomain.Unhandledexception handler.
            }, null);
Console.WriteLine("request started");
Console.ReadLine();

问题是响应回调中的异常不会触发UnhandledException事件处理程序。我已经检入调试器 - 在默认域中执行回调。因此,显然异常会在到达堆栈顶部之前被捕获。我对这种行为感到好奇。也许我错过了一些观点,但在我看来这是非常意外的。如果有人澄清,我会很高兴。代码是在.net 4.0下运行的控制台应用程序。

0 个答案:

没有答案