TAP全局異常處理程序此代碼拋出異常。是否可以定義將捕獲它的應用程序全局處理程序?string x = await DoSomethingAsync();使用.net 4.5 / WPF
3 回答

MYYA
TA貢獻1868條經(jīng)驗 獲得超4個贊
將事件綁定到AppDomain.CurrentDomain.FirstChanceException
將保證您將捕獲您的異常。正如@Noseratio指出的那樣,即使在catch塊中正常處理異常并且應用程序繼續(xù)執(zhí)行,您也會收到應用程序中的每個異常的通知。
但是,我仍然看到此事件對于至少捕獲應用程序暫停之前拋出的最后幾個異?;蛘吣承┢渌{試方案非常有用。
如果你想保護自己免受這種傷害
string x = await DoSomethingAsync();
我給你的建議是,不要這樣做,添加一個try catch塊:-)

Qyouu
TA貢獻1786條經(jīng)驗 獲得超11個贊
在.NET 4.5 async
代碼中,您可以通過注冊TaskScheduler.UnobservedTaskException
事件的處理程序來處理未觀察到的異常。如果您不訪問屬性而您沒有調用Task.Result
,則認為異常未被觀察到。Task.Exception
Task.Wait
在未觀察到的異常到達TaskScheduler.UnobservedTaskException
事件處理程序之后,默認行為是吞下此異常,以便程序不會崩潰??梢酝ㄟ^添加以下內容在配置文件中更改此行為:
<configuration> <runtime> <ThrowUnobservedTaskExceptions enabled="true"/> </runtime> </configuration>
- 3 回答
- 0 關注
- 582 瀏覽
添加回答
舉報
0/150
提交
取消