使用.NET框架我有一系列可以生成多種類型異常的方法的服務:MyException2,MyExc1,Exception ...爲所有人提供適當的工作方法,他們每個人都包含以下幾個部分:如何避免異常捕獲.NET中的複製粘貼
[WebMethod]
void Method1(...)
{
try
{
... required functionality
}
catch(MyException2 exc)
{
... process exception of MyException2 type
}
catch(MyExc1 exc)
{
... process exception of MyExc1 type
}
catch(Exception exc)
{
... process exception of Exception type
}
... process and return result if necessary
}
這是很無聊的用完全相同的異常處理功能,具有完全相同的東西,在每個服務方法(每種方法都有不同的參數)...
是否有可能將這些catch部分「分組」並僅使用一行(與C++宏類似)?可能.NET 4.0中的新東西與此主題有關?
謝謝。
P.S.任何想法都歡迎。
我也有類似的想法,但問題是,每種方法都有不同的參數(對不起,我沒有提到,在原來的問題,並添加說明最近)。以下是方法簽名的示例:string Method1(string);方法二無效(字符串,INT,INT),等等... – Budda 2010-06-17 18:56:37
@Budda:這並不重要 - 它會很好地工作,由於Lambda表達式可以在所有的參數傳遞,我寫它的方式。 – 2010-06-17 18:58:36
@Budda:我編輯我的回答證明:)這適用於在方法的任何數量的參數... – 2010-06-17 19:00:43