Try Catch機制使用場景分析

2022-02-23 07:28:14 字數 2225 閱讀 9336

(一)在什麼場景下加try-catch機制

1)以業務邏輯功能為單位,在最上層加try-catch機制。為什麼要這樣做呢?這主要是增加程式的健壯性,防止因丟擲異常過多,導致程式崩潰。

view source

print

?01

try

02

06

catch(exception ex)

07

2)底層**,在可能出錯的地方加try-catch機制,用catch偵測具體的異常,然後就具體的異常,採取相應的解決方案。

view source

print

?01

try

02

05

catch(objectdisposedexception ex)//socket 已關閉

06

09

catch(socketexception ex)

10

14

catch(exception ex)

15

3)底層**,在需異常追蹤時加try-catch機制,在catch塊中拋出自定義異常,除錯時可迅速定位到錯誤**段。

view source

print

?1

try

2

6

catch(exception ex)

7

(二)try-catch機制注意點

1)try-catch機制會將異常遮蔽掉,在解決異常時,您可以根據具體的異常執行相應的解決方案,也可以記錄錯誤日誌,用於異常追蹤,還可以直接拋出自定義異常。在眾多選擇中,請牢記一條:必須根據具體的應用場景,具體分析。比如,我們寫乙個程式實現atm機取現功能,首先,驗證使用者的合法性,其次,驗證使用者本次操作的合法性,最後,完成使用者操作。我們在以上三個操作都加上try-catch機制,如果此時第乙個操作出現異常,您如果只是記錄一下日誌,將此異常遮蔽掉,將會造成災難性的後果。

2)不能濫加try-catch機制,try-catch機制在一定程度上會損耗或影響效能,建議有以下幾點準則:

1.盡量給clr乙個明確的異常資訊,不要使用exception去過濾異常    

2.盡量不要將try…catch寫在迴圈中    

3. try盡量少的**,如果有必要可以使用多個catch塊,並且將最有可能丟擲的異常型別,書寫在距離try最近的位置    

4.不要只宣告乙個exception物件,而不去處理它。這樣做白白增加了exception handing table的長度。    

5.使用效能計數器實用工具的「clr exceptions」檢測異常情況,並適當優化    

6.使用成員的try-parse模式,如果丟擲異常,那麼用false代替它

有關try-catch機制對效能的影響,推薦一篇博文:

**:

Associative機制使用場景

objective c 有兩個擴充套件機制 category和associative。我們可以通過category來擴充套件方法,但是它有個很大的侷限性,不能擴充套件屬性。於是,就有了專門用來擴充套件屬性的機制 associative。在ios開發過程中,category比較常見,而associat...

Git使用場景 命令使用場景

通過個人使用git時候的遇到的使用場景,熟悉了解相關命令,也記錄一下場景的使用方法。所有場景均在ubuntu16.04 linux 作業系統下,其他作業系統有差異的地方自行查閱相關資料。安裝git sudo apt get install git設定及檢視git配置 user.name和user.e...

mongodb 使用場景和不使用場景

1.mongodb介紹 mongodb 名稱來自 humongous 是乙個可擴充套件的高效能,開源,模式自由,面向文件的資料庫。它使用c 編寫。mongodb特點 a.面向集合的儲存 適合儲存物件及json形式的資料。b.動態查詢 mongo支援豐富的查詢表達方式,查詢指令使用json形式的標記,...