Java異常處理實(shí)例詳解
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("一定會(huì)執(zhí)行finally語(yǔ)句塊");
}
System.out.println("end!!!");
}
}
輸出:
數(shù)組范圍越界! 異常:java.lang.ArrayIndexOutOfBoundsException: 7 一定會(huì)執(zhí)行finally語(yǔ)句塊 end!!!

3. 拋出異常
語(yǔ)法:throw 異常類(lèi)實(shí)例對(duì)象;
int a = 5, b = 0;
try{
if(b == 0)
throw new ArithmeticException("一個(gè)算術(shù)異常,除數(shù)0");
else
System.out.println(a+"/"+b+"="+ a/b);
}
catch(ArithmeticException e){
System.out.println("拋出異常:"+e);
}
輸出:
拋出異常:java.lang.ArithmeticException: 一個(gè)算術(shù)異常,除數(shù)0
對(duì)方法進(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);
輸出:(報(bào)錯(cuò))
java: 未報(bào)告的異常錯(cuò)誤java.lang.Exception; 必須對(duì)其進(jìn)行捕獲或聲明以便拋出
可見(jià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. 編寫(xiě)異常類(lèi)
語(yǔ)法:(繼承 extends Exception 類(lèi))
class 異常類(lèi)名 extends Exception{
......
}
class MyException extends Exception{
public MyException(String msg){
// 調(diào)用 Exception 類(lèi)的構(gòu)造方法,存入異常信息
super(msg);
}
}
try{
throw new MyException("自定義異常!");
}
catch (Exception e){
System.out.println(e);
}
輸出:
MyException: 自定義異常!
到此這篇關(guān)于Java異常處理實(shí)例詳解的文章就介紹到這了,更多相關(guān)Java異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序詳解
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序,結(jié)合實(shí)例形式分析了選擇排序的原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
Java 如何使用@Autowired注解自動(dòng)注入bean
這篇文章主要介紹了Java 使用@Autowired注解自動(dòng)注入bean的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
spring學(xué)習(xí)之創(chuàng)建項(xiàng)目 Hello Spring實(shí)例代碼
這篇文章主要介紹了spring學(xué)習(xí)之創(chuàng)建項(xiàng)目 Hello Spring實(shí)例代碼,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Java8?stream流分組groupingBy的使用方法代碼
對(duì)于java8的新特性groupingBy方法,相信有很多人都在工作中用過(guò),這篇文章主要給大家介紹了關(guān)于Java8?stream流分組groupingBy的使用方法,需要的朋友可以參考下2024-01-01
Java中Boolean與字符串或者數(shù)字1和0的轉(zhuǎn)換實(shí)例
下面小編就為大家?guī)?lái)一篇Java中Boolean與字符串或者數(shù)字1和0的轉(zhuǎn)換實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
OpenFeign調(diào)用服務(wù)請(qǐng)求頭丟失Token的解決
這篇文章主要介紹了OpenFeign調(diào)用服務(wù)請(qǐng)求頭丟失Token的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java參數(shù)校驗(yàn)Validator與@AssertTrue深度解析
本文詳細(xì)介紹了Java的Validator框架及其@AssertTrue注解的使用,包括環(huán)境準(zhǔn)備、基礎(chǔ)注解介紹、實(shí)戰(zhàn)示例、@AssertTrue的深入解析、高級(jí)特性和最佳實(shí)踐建議,感興趣的朋友跟隨小編一起看看吧2025-01-01
Spring Boot Admin的使用詳解(Actuator監(jiān)控接口)
這篇文章主要介紹了Spring Boot Admin的使用詳解(Actuator監(jiān)控接口),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05

