Java深入講解異常處理try?catch的使用
1.try-catch異常處理說明
Java提供try和catch塊來處理異常,try塊用于包含可能出錯的代碼。catch塊用于處理try塊中發(fā)出的異常。可以根據(jù)需要在程序中有一個或多個try-catch塊
基本語法
try{
//可疑代碼
//將一場生成對應(yīng)的異常對象,傳遞給catch塊
}catch{
//對異常的處理
}
2.try-catch異常處理細節(jié)
1.如果異常發(fā)生了,則異常后面的代碼不會執(zhí)行,直接進入到catch塊
2.如果異常沒有發(fā)生,則順序執(zhí)行try的代碼塊,不會進入到catch。
3.如果希望不管是否發(fā)生異常,都執(zhí)行某段代碼,則使用如下代碼-finally{}
示例01
package com.demo.trycatch;
/**
* @version 1.0
* @auther Demo龍
*/
public class TrycatchDetial {
public static void main(String[] args) {
//1.如果異常發(fā)生了,則異常后面的代碼不會執(zhí)行,直接進入到catch塊
//ctrl+alt+t
try {
String ch="kkk";
int a=Integer.parseInt(ch);
System.out.println("number"+a);
} catch (NumberFormatException e) {
System.out.println("異常信息:"+e.getMessage());
}
System.out.println("程序繼續(xù)運行");
// > 2.如果異常沒有發(fā)生,則順序執(zhí)行try的代碼塊,不會進入到catch。
try {
String ch="556";
int a=Integer.parseInt(ch);
System.out.println("number="+a);
} catch (NumberFormatException e) {
System.out.println("異常信息:"+e.getMessage());
}
System.out.println("程序繼續(xù)運行02");
//> 3.如果希望不管是否發(fā)生異常,都執(zhí)行某段代碼,則使用如下代碼-finally{}
try {
String ch="Demo龍";
int a=Integer.parseInt(ch);
System.out.println("number="+a);
} catch (NumberFormatException e) {
System.out.println("異常信息:"+e.getMessage());
} finally {
System.out.println("finally被執(zhí)行");
}
}
}測試結(jié)果01

4.可以有多個catch語句,捕獲不同的異常(進行不同的業(yè)務(wù)處理),要求父類異常在后,子類異常在前,如果發(fā)生異常,只會匹配一個catch。
5.try-finally配合使用,這種用法相當于沒有捕獲異常,程序會直接退出,但會執(zhí)行finally業(yè)務(wù)邏輯
示例02
package com.demo.trycatch;
/**
* @version 1.0
* @auther Demo龍
*/
public class TrycatchDetial02 {
//4.可以有多個catch語句,捕獲不同的異常(進行不同的業(yè)務(wù)處理),
// 要求父類異常在后,子類異常在前,如果發(fā)生異常,只會匹配一個catch。
public static void main(String[] args) {
try {
Person person = new Person();
person=null;
System.out.println("name="+person.getName());//空指針異常
int n1=9;
int n2=0;
int num=n1/n2;//數(shù)學異常
//1.try代碼塊可能有多個異常
//2.可以使用多個catch分別捕獲不同的異常,相應(yīng)處理
//3.要求子類異常寫在前面,父類異常寫在后面
}catch (NullPointerException e){
System.out.println("空指針異常:"+e.getMessage());
} catch (ArithmeticException c){
System.out.println("算數(shù)異常:"+c.getMessage());
} catch (Exception e) {
System.out.println("異常情況:"+e.getMessage());
} finally {
System.out.println("finally代碼塊被執(zhí)行");
}
System.out.println("程序繼續(xù)運行。");
//5.try-finally配合使用,這種用法相當于沒有捕獲異常,
// 程序會直接退出,但會執(zhí)行finally業(yè)務(wù)邏輯
System.out.println("try-finally細節(jié)測試");
try {
int m1=9;
int m2=3;
System.out.println("m1/m2="+m1/m2);
} finally {
System.out.println("執(zhí)行finally代碼塊02");
}
try {
int m1=9;
int m2=0;
System.out.println("m1/m2="+m1/m2);
} finally {
System.out.println("執(zhí)行finally代碼塊01");
}
}
}
class Person{
private String name="demo龍";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
測試結(jié)果02

到此這篇關(guān)于Java深入講解異常處理try catch的使用的文章就介紹到這了,更多相關(guān)Java try catch內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實現(xiàn)
本文主要介紹了springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
springboot2.6.7集成springfox3.0.0的示例代碼
這篇文章主要介紹了springboot2.6.7集成springfox3.0.0的示例代碼,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-04-04
SpringBoot項目中Controller接收兩個實體的實現(xiàn)方法
本文主要介紹了SpringBoot項目中Controller接收兩個實體的實現(xiàn)方法,主要介紹了兩種方法,具有一定的參考價值,感興趣的可以了解一下2023-08-08
java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)
這篇文章主要介紹了java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11
Java連接FTP服務(wù)器并使用ftp連接池進行文件操作指南
使用FTP最主要的功能是對文件進行管理,下面這篇文章主要給大家介紹了關(guān)于Java連接FTP服務(wù)器并使用ftp連接池進行文件操作的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-08-08

