2009-11-22 281 views
1

C#中有沒有辦法捕獲任何類型的異常? 像C++來捕捉任何類型的異常 格式就像是異常處理

try{ 
//Statements 
} 
catch(...){ 
// Some more statements 
} 

但這種格式在C#中失敗。 幫助?

+1

考慮**爲什麼**你想捕捉任何異常。記錄和重新拋出是一個有效的用例。但是,你真的可以編寫代碼來處理**任何可能的錯誤**,並允許程序繼續處於已知狀態嗎? – TrueWill 2009-11-22 19:20:56

+0

實際上,我在我的應用程序的根目錄中使用了open catch,這樣如果發生未捕獲的異常,我可以重新啓動它。這對於服務等非常有用。 – 2009-11-22 19:48:03

回答

7

你可以趕上像什麼:因爲每個異常(甚至在Windows SEH除外)保證是

catch(Exception ex) {} 

catch {} 

從.NET 2和進一步,這相當於衍生自System.Exception

0
try { 
    // Statements 
} catch (Exception ex) { 
    // Do stuff with ex 
} 

這應該有效。

2

檢查this鏈接。這都是關於例外。

你所要做的是使用parameter-less catch這樣的:

try { 
    // your code 
} catch { 
    // any exception 
} 
0

趕上(異常前)

或掛鉤()< - 我相信,第二個工作

0

.NET框架提供了一種檢測/處理運行時錯誤的機制。 C#在異常處理中使用三個關鍵字:try,catch,finallytry塊包含可能導致異常的語句。 catch塊處理異常,finally塊用於清理。

try 
{ 
//statements that can cause an exception 
} 
catch(Type x) 
{ 
//statements for handling an exception 
} 
finally 
{ 
//cleanup code 
}