Java深入講解異常處理try?catch的使用
1.try-catch異常處理說明
Java提供try和catch塊來處理異常,try塊用于包含可能出錯的代碼。catch塊用于處理try塊中發(fā)出的異常??梢愿鶕?jù)需要在程序中有一個或多個try-catch塊
基本語法
try{ //可疑代碼 //將一場生成對應的異常對象,傳遞給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è)務處理),要求父類異常在后,子類異常在前,如果發(fā)生異常,只會匹配一個catch。
5.try-finally配合使用,這種用法相當于沒有捕獲異常,程序會直接退出,但會執(zhí)行finally業(yè)務邏輯
示例02
package com.demo.trycatch; /** * @version 1.0 * @auther Demo龍 */ public class TrycatchDetial02 { //4.可以有多個catch語句,捕獲不同的異常(進行不同的業(yè)務處理), // 要求父類異常在后,子類異常在前,如果發(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分別捕獲不同的異常,相應處理 //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è)務邏輯 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ù)源事務管理實現(xiàn)
本文主要介紹了springboot-jta-atomikos多數(shù)據(jù)源事務管理實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03springboot2.6.7集成springfox3.0.0的示例代碼
這篇文章主要介紹了springboot2.6.7集成springfox3.0.0的示例代碼,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-04-04SpringBoot項目中Controller接收兩個實體的實現(xiàn)方法
本文主要介紹了SpringBoot項目中Controller接收兩個實體的實現(xiàn)方法,主要介紹了兩種方法,具有一定的參考價值,感興趣的可以了解一下2023-08-08java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)
這篇文章主要介紹了java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11