溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Task中處理異常

發(fā)布時間:2020-06-23 19:14:48 來源:網(wǎng)絡(luò) 閱讀:713 作者:cnming 欄目:編程語言

MSDN原文:
任務(wù)基礎(chǔ)結(jié)構(gòu)會將內(nèi)部異常包裝在 AggregateException 實例中。 AggregateException 具有一個 InnerExceptions 屬性,可枚舉該屬性來檢查引發(fā)的所有原始異常,并單獨處理(或不處理)每個異常。 即使只引發(fā)了一個異常,也仍會將該異常包裝在 AggregateException 中。

簡單處理內(nèi)部異常的例子
 

C# code
var task1 = Task.Factory.StartNew(() => { throw new Exception("I'm bad, but not too bad!"); }); try { task1.Wait(); } catch (AggregateException ae) { foreach (var a in ae.InnerExceptions) { Console.WriteLine(task1.IsFaulted); //這里將輸出True,表示task1任務(wù)失敗了 Console.WriteLine(a.Message); } } Console.Read();



輸出:
True
I'm bad, but not too bad!


當(dāng)運行到throw new Exception("I'm bad, but not too bad!");的時候,VS會在這行中斷運行,并顯示錯誤消息,這是沒關(guān)系的,按F5繼續(xù)查看后續(xù)操作。

MSDN原文:
當(dāng)啟用“僅我的代碼”時,在某些情況下,Visual Studio 將在引發(fā)異常的行上中斷運行,并顯示錯誤消息“異常未由用戶代碼處理”。此錯誤是良性的。 按 F5 繼續(xù)并查看在這些示例中演示的異常處理行為。 若要阻止 Visual Studio 在出現(xiàn)第一個錯誤時中斷運行,只需在“工具”->“選項”->“調(diào)試”->“常規(guī)”下取消選中“僅我的代碼”復(fù)選框即可。



 

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI