2014-03-12 90 views
0

我有一個重複的異常處理的問題...重複異常處理

例如:具有的Webmethods try-catch塊和try塊內有執行代碼。這個try-catch塊對每個webmethod都是一樣的。

有沒有可能讓它更容易,更易於維護,而不需要重複相同的代碼? 我瞭解方面,但有沒有其他解決方案?

代碼lang是C#,但我在一般的解決方案。

感謝您的回答。

+0

A *通用的解決方案*異常處理通常是一個非常壞的理念。如果你對每一個「WebMethod」都需要完全相同的'try/catch'塊,那麼我傾向於認爲你的設計在大規模時有問題。你介意給出一個你想重複處理的例子嗎? – Crono

回答

0

使用函數式編程原則,您可以傳遞想要以某種方式執行的動作或方法。

在C#中,你可以做一個方法,像這樣的標準化你的代碼:

public void HandleExceptions(Action action) 
{ 
    try 
    { 
     action(); 
    } 
    catch (ExceptionA exa) 
    { 

    } 
    catch (ExceptionB exb) 
    { 

    } 
    finally 
    { 

    } 
} 

,並調用它像這樣:

HandleExceptions(() => 
{ 
    //insert code to be handled by try/catch structure 
    Method1(); 
}); 
HandleExceptions(() => 
{ 
    Method2(); 
});