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) 進程已結(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
對方法進行異常拋出
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; 必須對其進行捕獲或聲明以便拋出
可見,方法后面跟了 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數(shù)據(jù)結(jié)構(gòu)與算法之簡單選擇排序詳解
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之簡單選擇排序,結(jié)合實例形式分析了選擇排序的原理、實現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
spring學習之創(chuàng)建項目 Hello Spring實例代碼
這篇文章主要介紹了spring學習之創(chuàng)建項目 Hello Spring實例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Java8?stream流分組groupingBy的使用方法代碼
對于java8的新特性groupingBy方法,相信有很多人都在工作中用過,這篇文章主要給大家介紹了關(guān)于Java8?stream流分組groupingBy的使用方法,需要的朋友可以參考下2024-01-01
Java中Boolean與字符串或者數(shù)字1和0的轉(zhuǎn)換實例
下面小編就為大家?guī)硪黄狫ava中Boolean與字符串或者數(shù)字1和0的轉(zhuǎn)換實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
OpenFeign調(diào)用服務請求頭丟失Token的解決
這篇文章主要介紹了OpenFeign調(diào)用服務請求頭丟失Token的解決方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
Java參數(shù)校驗Validator與@AssertTrue深度解析
本文詳細介紹了Java的Validator框架及其@AssertTrue注解的使用,包括環(huán)境準備、基礎注解介紹、實戰(zhàn)示例、@AssertTrue的深入解析、高級特性和最佳實踐建議,感興趣的朋友跟隨小編一起看看吧2025-01-01
Spring Boot Admin的使用詳解(Actuator監(jiān)控接口)
這篇文章主要介紹了Spring Boot Admin的使用詳解(Actuator監(jiān)控接口),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-05-05

