异常体系----java
一、異常體系
1、error
error類層次描述了java運行時系統內部錯誤和資源耗盡錯誤,一般指與jvm或動態加載等相關的問題,
如:虛擬機錯誤,動態鏈接失敗,系統崩潰等。
2、exception
所有異常類的父類,其子類對應了各種各樣的可能出現的異常事件。
3、exception分類
(1)運行時異常 runtime exception
可不必對其處理,系統自動檢測處理
一類特殊的異常,如被0除,數組下標超范圍等,其產生比較頻繁,處理麻煩,如果需要顯示的聲明或
捕獲將會對程序可讀性和運行效率影響很大
(2)檢查異常 checked exception
必須捕獲進行處理,否則會出現編譯錯誤
注意:只有Java提供了checked異常,體現了java的嚴謹性,提高了java的健壯性。同時也是一個備受爭議的問題
二、異常處理
1、手動拋出異常throw
(1)java異常類對象除在程序執行過程中出現異常時由系統自動生成并拋出,也可根據需要手工創建并拋出
(2)在捕獲一個異常前,必須有一段代碼先生成異常對象并把它拋出,這個過程我們可以手工做,也可以有JRE來實現
但是他們都是throw子句。
(3)注意拋出運行時異常和checked異常的區別
拋出checked異常,該throw語句要么處于try塊中,要么方法簽名中石油throws拋出,
拋出運行時異常,沒有以上要求
2、聲明異常throws
1、當checked exception產生時,不一定l立刻處理它,可以再把異常throws出去
2、如果一個方法拋出多個已檢查異常,就必須在方法的首部列出所有的異常,之間以逗號隔開
3、子類聲明的異常不能超過父類聲明的范圍:父類沒有聲明異常,子類也不能;不可拋出原有方法拋出
異常類的父類或上層類
?
import java.util.InputMismatchException; import java.util.Scanner;public class TestException6 {public static void main(String[] args) throws Exception{try{getAvg();}catch (Exception e){e.printStackTrace();}getAvg();}public static void getAvg() throws Exception{try {Scanner input = new Scanner(System.in);//輸入總分System.out.println("請輸入總分");int sum = input.nextInt();//輸入人數System.out.println("請輸入人數");int count = input.nextInt();if (count<0){throw new Exception("人數不能是負數:"+count);}//求平均分輸出int result = sum/count;System.out.println("result="+result);}catch (ArithmeticException e){e.printStackTrace();}catch (InputMismatchException e){e.printStackTrace();}catch (Exception e){//先處理e.printStackTrace();//再拋出throw e;}finally {System.out.println("11111");}System.out.println("22222222");} }運行結果如下:
?
?
?
?
?
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的异常体系----java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: miracast投屏软件下载_手机画面如
- 下一篇: static变量 java