問題
Try Catch需注意,建議盡量使用using
解決方法
最近發現有些人的Try Catch 是這樣用的
然而這種用法有時候會造成程式資源無法釋放(在IIS上資源會無法回收),有時候又可以正常,原因何在??!!
- string msg = "test";
- try
- {
- throw new Exception("test err");
- }
- catch (Exception ex)
- {
- msg = ex.Message;
- throw ex;
- }
.jpg)
是因為當使用Try Catch時,在Catch區塊裡攔截的是Try區塊裡的動作,但是如果在Catch區塊裡又出現exception時,就發生了無法處理的窘境,其實解決方式很簡單,有兩種方式
1.在現有的Try Catch外在加一層Try Catch,以確保在內層的Catch發生異常時有辦法處理,但是缺點是耗用更多資源去處理exception,正確作法是Catch裡不要做任何會造成exception的動作
2.使用using(這邊指的是有繼承IDispose的class or inerface),當物件本身有實作IDispose的時候,就使用using去實體化物件,以確保資源正確釋放
沒有留言:
張貼留言