如何選擇處理異常的方式

2021-09-25 22:52:23 字數 853 閱讀 4670

開發中選擇try-catch-finally還是throws?

1)父類被重寫的方法沒有用throws處理異常,子類重寫的方法如果有異常,只能用try-catch-finally

2) 場景:比如乙個方法中呼叫了別的方法,假設呼叫了三個方法,如果這三個方法之間是遞進的關係(遞進關係的說明:比如第乙個方法正常執行後得到的資料作為引數傳給第二個方法,第二個方法正常執行後得到的資料作為引數傳給第三個方法)並且這三個方法都有可能出異常。

處理方式:這三個方法的宣告都用throws,在呼叫這三個方法的方法的方法體中用乙個try-catch-finally統一處理異常

這麼做的原因:1)統一進行處理,更加方便2)比如如果方法1不去throws直接try-catch-finally,去呼叫方法一的時候異常已經被方法一處理掉了,所以可以繼續在呼叫者的方法體中執行下面的語句,但事實上如果方法一**了異常得到的資料方法二也用不了,(方法二要用的是方法一正常執行得到的資料),所以再執行下面的語句也沒有意義。而採用這三個方法的宣告都用throws,在呼叫這三個方法的方法的方法體中用乙個try-catch-finally這種方式,如果方法一呼叫出現異常就直接到catch中了,try中的餘下**就不會執行了,因為也沒有意義。

注意:比如method1採用throws異常,在method2中呼叫method1,並用try-catch進行處理,從語法上可以在method2宣告throws,但根本沒有必要,因為異常已經被解決了,選擇一種方式處理異常即可

總結:try-catch-finally或者throws是我們針對執行時可能會出現問題的**做乙個準備,表示萬一出現了問題怎麼辦,但一定要記得該修改的**還是要修改

異常處理的方式

finally是個可選的,可以不寫 使用try將可能出現異常的 包裝起來,在執行過程中,一旦出現異常,就會生成乙個對應異常類的物件,根據此物件的型別,在catch中進行匹配 一旦try中的異常物件匹配到某乙個catch時,就進入catch中進行異常的處理 處理結束後,就跳出當前的try.catch結...

異常 try catch的方式處理異常2

package cn.itcast 01 a 乙個異常,前面已經講過了 b 二個異常的處理 a 每乙個寫乙個try.catch b 寫乙個try,多個catch trycatch 異常類名 變數名 catch 異常類名 變數名 注意事項 1 能明確的盡量明確,不要用大的來處理。2 平級關係的異常誰前...

linux C 異常處理的方式

目前遇到這樣的問題,大概在2000多台伺服器裡面有100多多台乙個c程序掛掉了,由於公司各種的流程除錯起來非常困難。這幾天google了下找到了一些資料,捕獲異常堆疊的,如 我有兩個疑慮 這篇文章裡面用的不知道linux各個版本核心是否是標準支援嗎?裡面還用到乙個命令addr2line,是否標準支援...