Java異常處理實例詳解
1. 異常例子
class TestTryCatch {
public static void main(String[] args){
int arr[] = new int[5];
arr[7] = 10;
System.out.println("end!!!");
}
}
輸出:(越界)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at TestTryCatch.main(TestTryCatch.java:4) 進(jìn)程已結(jié)束,退出代碼1
2. 異常處理


class TestTryCatch {
public static void main(String[] args){
try {
int arr[] = new int[5];
arr[7] = 10;
}
catch (ArrayIndexOutOfBoundsException e){
System.out.println("數(shù)組范圍越界!");
System.out.println("異常:"+e);
}
finally {
System.out.println("一定會執(zhí)行finally語句塊");
}
System.out.println("end!!!");
}
}
輸出:
數(shù)組范圍越界! 異常:java.lang.ArrayIndexOutOfBoundsException: 7 一定會執(zhí)行finally語句塊 end!!!

3. 拋出異常
語法:throw 異常類實例對象;
int a = 5, b = 0;
try{
if(b == 0)
throw new ArithmeticException("一個算術(shù)異常,除數(shù)0");
else
System.out.println(a+"/"+b+"="+ a/b);
}
catch(ArithmeticException e){
System.out.println("拋出異常:"+e);
}
輸出:
拋出異常:java.lang.ArithmeticException: 一個算術(shù)異常,除數(shù)0
對方法進(jìn)行異常拋出
void add(int a, int b) throws Exception {
int c = a/b;
System.out.println(a+"/"+b+"="+c);
}
TestTryCatch obj = new TestTryCatch(); obj.add(4, 0);
輸出:(報錯)
java: 未報告的異常錯誤java.lang.Exception; 必須對其進(jìn)行捕獲或聲明以便拋出
可見,方法后面跟了 throws 異常1, 異常2...,則 必須 在調(diào)用處 處理
改為:
TestTryCatch obj = new TestTryCatch();
try{
obj.add(4, 0);
}
catch (Exception e){
System.out.println("必須處理異常:"+e);
}
輸出:
必須處理異常:java.lang.ArithmeticException: / by zero
4. 編寫異常類
語法:(繼承 extends Exception 類)
class 異常類名 extends Exception{
......
}
class MyException extends Exception{
public MyException(String msg){
// 調(diào)用 Exception 類的構(gòu)造方法,存入異常信息
super(msg);
}
}
try{
throw new MyException("自定義異常!");
}
catch (Exception e){
System.out.println(e);
}
輸出:
MyException: 自定義異常!
到此這篇關(guān)于Java異常處理實例詳解的文章就介紹到這了,更多相關(guān)Java異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java發(fā)送kafka事務(wù)消息的實現(xiàn)方法
本文主要介紹了java發(fā)送kafka事務(wù)消息的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
獲取系統(tǒng)參數(shù)System.getProperties()與配置文件參數(shù)@Value(“${key}“)
這篇文章主要介紹了獲取系統(tǒng)參數(shù)System.getProperties()與配置文件參數(shù)@Value("${key}"),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
詳解java中Reference的實現(xiàn)與相應(yīng)的執(zhí)行過程
不知道大家知不知道特殊的reference對象都是被jvm專門處理的,所以這篇文章就相應(yīng)的工作流程和referencequeue之間的協(xié)作進(jìn)行梳理.有需要的朋友們可以參考借鑒。2016-09-09
Java8 Lambda表達(dá)式模板方法實現(xiàn)解析
這篇文章主要介紹了Java8 Lambda表達(dá)式模板方法實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08

