以下皆來自轉載總結,用作個人總結學習
什麼時候需要用到try-catch?
代碼執行預料不到的情況,或出錯的可能性很大時,使用try-catch語句。
1、構造一個文件輸入流,(上傳文件時,線上環境的內存情況不確定)出錯的可能性很大。
2、文件上傳寫入,數據庫事務的提交,還有攝像頭和打印機的使用
使用數據庫事務的時候使用try-catch,如果事務執行成功就提交事務,如果事務執行失敗就由catch提示錯誤並回滾事務。還有就是在使用curl方式訪問其他網絡地址的時候會用到,如果網絡訪問出錯或者網絡訪問超時就在catch中拋出錯誤。還有就是之前寫winfrom軟件的時候調用攝像頭和打印機,會使用try-catch。
3、程序調用其他人寫的程序接口的時候,不敢保證別人的接口返回的都是約定好的返回值。
所以如果接口返回約定好的返回值,那麼try中的程序正常執行,如果意料之外catch拋出錯誤。
可以通過下面這一段代碼來加深一下理解:
public class TryCatchStu {
/*try catch:自己處理異常
*try{
* 可能出現異常的代碼
*}catch(異常類名A e){
* 如果出現了異常類A類型的異常,那麼執行該代碼
*}...(catch可以有多個)
*finally{
* 最終肯定必須要執行的代碼(例如釋放資源的代碼)
*}
*代碼執行的順序:
*1.try內的代碼從出現異常的那一行開始,中斷執行
*2.執行對應的catch塊內的代碼
*3.繼續執行try catch 結構之後的代碼
*注意點:
*1.如果catch內的異常類存在子父類的關係,那麼子類應該在前,父類在後
*2.如果finally中有return語句,那麼最後返回的結果肯定以finally中的返回值爲準
*3.如果finally語句中有return,那麼沒有被處理的異常將會被吞掉
*重寫的注意點:
*1.兒子不能比父親的本事大
*2.兒子要比父親開放
*3.兒子不能比父親惹更大的麻煩(子類的異常的類型不能是父類的異常的父類型)
*異常類Api:
*1.getMessage():獲取異常描述信息字符串
*2.toString():返回異常類的包路徑和類名和異常描述信息字符串
*3.printStackTrace():除了打印toString的信息外,還要打印堆棧信息
*/
原文鏈接:https://blog.csdn.net/wanghuiwei888/article/details/78818203