之前提到異常處理,立刻就想到加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"); }
這種作法很是便於維護,解決了困惑我很久的疑問。異常