Java深入講解異常處理try?catch的使用
1.try-catch異常處理說明
Java提供try和catch塊來處理異常,try塊用于包含可能出錯(cuò)的代碼。catch塊用于處理try塊中發(fā)出的異常。可以根據(jù)需要在程序中有一個(gè)或多個(gè)try-catch塊
基本語(yǔ)法
try{ //可疑代碼 //將一場(chǎng)生成對(duì)應(yīng)的異常對(duì)象,傳遞給catch塊 }catch{ //對(duì)異常的處理 }
2.try-catch異常處理細(xì)節(jié)
1.如果異常發(fā)生了,則異常后面的代碼不會(huì)執(zhí)行,直接進(jìn)入到catch塊
2.如果異常沒有發(fā)生,則順序執(zhí)行try的代碼塊,不會(huì)進(jìn)入到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ā)生了,則異常后面的代碼不會(huì)執(zhí)行,直接進(jìn)入到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ù)運(yùn)行"); // > 2.如果異常沒有發(fā)生,則順序執(zhí)行try的代碼塊,不會(huì)進(jìn)入到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ù)運(yùn)行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í)行"); } } }
測(cè)試結(jié)果01
4.可以有多個(gè)catch語(yǔ)句,捕獲不同的異常(進(jìn)行不同的業(yè)務(wù)處理),要求父類異常在后,子類異常在前,如果發(fā)生異常,只會(huì)匹配一個(gè)catch。
5.try-finally配合使用,這種用法相當(dāng)于沒有捕獲異常,程序會(huì)直接退出,但會(huì)執(zhí)行finally業(yè)務(wù)邏輯
示例02
package com.demo.trycatch; /** * @version 1.0 * @auther Demo龍 */ public class TrycatchDetial02 { //4.可以有多個(gè)catch語(yǔ)句,捕獲不同的異常(進(jìn)行不同的業(yè)務(wù)處理), // 要求父類異常在后,子類異常在前,如果發(fā)生異常,只會(huì)匹配一個(gè)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ù)學(xué)異常 //1.try代碼塊可能有多個(gè)異常 //2.可以使用多個(gè)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ù)運(yùn)行。"); //5.try-finally配合使用,這種用法相當(dāng)于沒有捕獲異常, // 程序會(huì)直接退出,但會(huì)執(zhí)行finally業(yè)務(wù)邏輯 System.out.println("try-finally細(xì)節(jié)測(cè)試"); 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; } }
測(cè)試結(jié)果02
到此這篇關(guān)于Java深入講解異常處理try catch的使用的文章就介紹到這了,更多相關(guān)Java try catch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實(shí)現(xiàn)
本文主要介紹了springboot-jta-atomikos多數(shù)據(jù)源事務(wù)管理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03springboot2.6.7集成springfox3.0.0的示例代碼
這篇文章主要介紹了springboot2.6.7集成springfox3.0.0的示例代碼,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04SpringBoot項(xiàng)目中Controller接收兩個(gè)實(shí)體的實(shí)現(xiàn)方法
本文主要介紹了SpringBoot項(xiàng)目中Controller接收兩個(gè)實(shí)體的實(shí)現(xiàn)方法,主要介紹了兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)
這篇文章主要介紹了java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Java連接FTP服務(wù)器并使用ftp連接池進(jìn)行文件操作指南
使用FTP最主要的功能是對(duì)文件進(jìn)行管理,下面這篇文章主要給大家介紹了關(guān)于Java連接FTP服務(wù)器并使用ftp連接池進(jìn)行文件操作的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08