新思路:Exception Handle

之前提到異常處理,立刻就想到加try-catch. 沒錯,這種應激反應是對的。關鍵是怎麼加?spa

若是想爲每個方法都加異常處理,輸出相同格式的異常信息,應該怎麼作呢?code

難道是爲每個方法加一個try-catch, 而後輸出相同格式的異常信息?blog

假若有一天,咱們輸出處理異常的方式變了或者異常信息格式變了,咱們豈不是要找到全部加try-catch的地方改一遍?string

OMG!it

另外一種思路:io

1. 把異常處理封裝到一個實體類裏一個比較通用的方法裏。如:class

public static void ExecuteWithErrorHandling(Action action, string message)
{
    try
    {
        action();
    }
    catch(Exception ex)
    {
        //根據本身的須要定義異常的處理方式
        //Trace.write(...)
        //MessageBox.Show(...)
    }
}

 

2. 把方法傳到通用異常處理方法裏執行。方法

public void HelloWorld()
{
    Console.WriteLine("Hello World");
}

...

Void Main()
{
    ExcuteWithErrorHandling(HelloWorld,"something is wrong");
}


這種作法很是便於維護,解決了困惑我很久的疑問。異常

相關文章
相關標籤/搜索