學習之路二十三 利用委託減少Try Catch

2022-01-19 19:53:35 字數 1142 閱讀 5385

前段時間利用了一點空閒時間優化了專案中的**,其中減少try/catch是這次優化的重點。

主要是參考了老a的大作:如何編寫沒有try/catch的程式

,看了一下,老a主要介紹了怎麼減少按鈕事件中的try/catch,不過我們專案是wcf,基本上就沒有按鈕事件,不過老a也提供了乙個很好的思路,那就是利用委託動態的為每個方法加上try/catch,有了這個思路之後就很好做了。

核心**:

1

private t invokehandler(string clientname, string methodname, delegate delegatewarpper, object

parameters)211

catch

(targetinvocationexception exception)

1215

return

default

(t);

16 }

原有的呼叫方式:

1

public list getnames(string

clientname)2;

8}9catch

(exception exception)

1013

return

null

;14 }

現在的呼叫方式:

1

public list getnames(string

clientname)2;

6//然後呼叫助手方法就可以了

7return invokehandlerstring>>(clientname, "

getnames

", func, null

);8 }

通過舊的和新的呼叫方式比較,發現**有了很大的縮減,而且從**整潔的角度來看新的呼叫方式更加優美。

這個方法不是萬能的,不過應對80%的情況還是沒有問題滴!

好了,如果園友很有什麼好的看法,提出來分享下,thanks.......  

最後祝大家2013春節快樂!

以同步至:個人文章目錄索引

python 學習筆記(二十三)

coding utf8 author liwei import re python正則的應用,math方法判斷正則是否匹配成功 print 正則簡單用例 text hello liwei is 25 if re.match r w s w s w s d text print ok else pri...

我的程式設計之路 二十三 征途

1.第一次坐飛機 終於要坐飛機了,不免有點激動哈!和杰哥 為哥三個一起,中午在華師那邊坐的機場大巴一路到了機場,機場很大,我們先去列印登機牌,然後去託運行李,由於不知道含有鋰電池的不能託運,所以不得不把膝上型電腦從行李廂中取出,不過我的箱子是我們三個之中最大的!乙個人的行李不能超過20kg,還好我的...

Python小白學習之路(二十三) 生成器補充

接著下雞蛋和吃包子!總是把生成器比喻成母雞下雞蛋,需要乙個下乙個,首先是下出來的雞蛋不能塞回 母雞肚子裡,其次是乙個母雞一生只能下一定數量的雞蛋,下完了就死掉了 通過程式來理解什麼意思 程式一 deftest for i in range 2 yield it test for i in t pri...