一,異常的捕獲java
在上節課咱們觀察了異常的出現,並且咱們異常的第一節課:Java異常處理(觀察常見異常)就說了若是程序出現了異常則出現異常以後的代碼就再也不執行了,至關於中斷了程序,若是要出現異常以後的代碼還能繼續執行,則須要將這個異常捕獲處理以後才能夠面試
DEMO:出現異常的代碼spring
此時發現出現數字格式化異常,也就是不能將一個非數字類型的字符串轉換成一個整數,致使了後面的代碼沒有執行,若是要讓後面的代碼執行須要先捕獲處理異常設計模式
異常處理的語法以下:微信
其中「異常類型」肯定了你當前的這個try語句塊只能捕獲你給定的異常類型以及該異常類型的子類類型。分佈式
DEMO:處理異常ide
發現了出現異常的以後的代碼也執行了,可是沒有打印出異常信息,若是打印出異常信息,只須要調用異常對象的「printStackTrace()」學習
DEMO:打印出異常信息設計
發現了咱們在 catch 語句中定義的異常類型是Exception,可是咱們try 語句塊中出現的異常是「java.lang.NumberFormatException ",那感受不同卻能捕獲,是什麼緣由呢﹖其實"java.lang.Exception」是「java.lang.NumberFormatException」的父類3d
發現了能打印異常信息,同時能執行異常出現以後的代碼。其實上以上處理異常的語句還不夠完善,由於有這樣的需求:要求一段代碼無論是否出現異常都必須執行,那麼這斷代碼須要放到finally語句中,因而要在catch 以後加上finally語句。
DEMO:finally語句
以上的代碼證實了無論是否出現異常finally中的程序都會被執行。
咱們上面分析出現異常的代碼以後的程序還會被執行,可是若是這個程序是在try語句塊中呢?
DEMO:若是出現異常代碼以後的代碼是在try 語句塊中
若是出現異常以後的程序在try語句塊以外則處理了異常就會被執行,
若是出現異常以後的代碼是try語句塊以內則不會被執行。
一、出現異常以後的代碼若是不作異常處理或者沒有捕獲到則不會被執行,也就是終止了程序
二、若是處理了異常:
I-在try語句塊以外的程序會被執行
|-若是是在try語句塊以內則就算異常被處理完畢出現異常後面的代碼仍是不會被執行
三、finally語句中的代碼無論是否出現異常、無論是否處理了異常都會被執行。
有完整的Java初級,高級對應的學習路線和資料!專一於java開發。分享java基礎、原理性知識、JavaWeb實戰、spring全家桶、設計模式、分佈式及面試資料、開源項目,助力開發者成長!
歡迎關注微信公衆號:碼邦主