關於try catch 的一些總結

2021-10-08 10:58:57 字數 942 閱讀 3277

程式要健壯,必須要設計報錯機制。而try()catch{}就是一種報錯機制。

優點:程式執行報錯就會終止,而try()catch{}為了丟擲執行時的異常,使程式能夠正常執行。

(1)結構

trycatch()

(2)try-catch的執行順序

①先執行try{}中的**,從try{}**中第一行開始執行,當出現異常,jvm就會建立乙個異常物件。

②判斷catch中宣告的異常型別是否能捕捉到jvm建立的異常物件

i: 能捕捉到:直接跳到catch**塊中執行。 不會結束程式,繼續從catch**塊後面的**執行

ii: 不能捕捉到:直接列印異常資訊並結束程式

③try{} 中沒有出現任何異常,把try中的所有**執行完,跳過catch繼續程式

(3)注意事項

①.能被catch捕捉到的條件 ==》try中建立的異常物件的型別與catch中宣告的型別一致,或者是catch中宣告的型別的子類。

②如果只有乙個捕捉指定型別的catch 只能捕捉對應型別的異常物件。 如果try中建立了其他型別的異常,捕捉不到。jvm來處理異常

③try{}**塊中存在多行**會丟擲異常的情況下,遇到第乙個異常,後面**的異常 只會被catch捕捉到異常資訊但都將不會被執行

(4)不同形式

寫多個catch時,下邊的catch宣告的異常型別不能是上邊的catch宣告的子類。

多個catch時,異常父類必須在下邊。 (沒有繼承關係時,就不用考慮此情況)

trycatch()catch()…finally (catch可以有多個,也可以沒有 ==》 tryfinally)

(5)關於finnaly

特點:寫在finally**塊中**,一定會被執行到

注意:①執行了 return 也會執行finally

②但 執行 system.exit(0) 就不會再執行finally了!!!

c 中 try catch 的一些

習慣了在 js 中寫 try catch 語句,所以在c 中瞎寫。杯具。我對c 的了解太少了。1.在c 中,很多錯誤是try catch 捕獲不到的,比如空指標訪問,野指標訪問等,程式都直接崩潰,不會讓你捕獲的。所以,很遺憾,我慣用try catch,並沒有達到預期。2.絕大多數 windows a...

關於stringstream的一些總結

c 標準庫中的提供了比ansi c的更高階的一些功能,即單純性 型別安全和可擴充套件性。可以使用這些庫來實現安全和自動的型別轉換。如果你已習慣了風格的轉換,也許你首先會問 為什麼要花額外的精力來學習基於的型別轉換呢?也許對下面乙個簡單的例子的回顧能夠說服你。假設你想用sprintf 函式將乙個變數從...

關於JSON的一些總結

一 關於json json是一種類似於xml的通用資料交換格式,具有比xml更高的傳輸效率.從結構上看,所有的資料 data 最終都可以分解成三種型別 第一種型別是標量 scalar 也就是乙個單獨的字串 string 或數字 numbers 比如 北京 這個單獨的詞。第二種型別是序列 sequen...