Java 認(rèn)識(shí)異常并掌握使用
Error
Java中的錯(cuò)誤是不能被處理的,由JVM(Java虛擬機(jī))拋出
Exception
異常是可以被處理的
常見(jiàn)的錯(cuò)誤和異常如下圖
對(duì)于異常,必須要進(jìn)行捕捉或聲明拋出
- 1.捕獲異常
try-執(zhí)行可能產(chǎn)生異常的代碼
catch-捕獲異常
finally-無(wú)論是否發(fā)送異常代碼總能執(zhí)行
try… catch… 相當(dāng)于自己處理了異常
- 2.聲明異常
throws -聲明可能要拋出的異常
throws會(huì)將異常直接拋給上層處理
- 3.throw
throw-生成一個(gè)異常類(lèi)對(duì)象
throw相當(dāng)于手動(dòng)拋出異常
try…catch
測(cè)試1
package com.lding.exception; import java.util.Scanner; /** * @program: Chat * @description: * @author: 王丁 * @date: 2021-09-28 10:49 **/ public class TryDemoOne { public static void main(String[] args) { //要求:定義兩個(gè)整數(shù),接受用戶(hù)鍵盤(pán)輸入,輸出兩數(shù)之商 Scanner input = new Scanner(System.in); System.out.println("=======運(yùn)算開(kāi)始========"); try { //包裹可能出錯(cuò)的代碼 System.out.print("請(qǐng)輸入第一整數(shù):"); int one = input.nextInt(); System.out.print("請(qǐng)輸入第二個(gè)整數(shù):"); int two = input.nextInt(); System.out.println("one和two的商是:" + (one / two)); }catch (Exception e){//捕獲異常 e.printStackTrace();//打印出錯(cuò)的位置 System.out.println("程序出錯(cuò)了~~~~~");//出錯(cuò)后執(zhí)行的語(yǔ)句 } finally {//無(wú)論是否出錯(cuò)都一定會(huì)執(zhí)行的語(yǔ)句 System.out.println("======運(yùn)算結(jié)束========"); } } }
運(yùn)行結(jié)果
注意:當(dāng)使用多重try…catch時(shí)要注意范圍,大范圍的(即父類(lèi))要后置
自定義異常類(lèi)
AgeException類(lèi) 寫(xiě)一個(gè)類(lèi)繼承Exception
在里面寫(xiě)其構(gòu)造方法,在構(gòu)造方法中調(diào)用父類(lèi)方法,傳入字符串
package com.lding.exception; /** * @program: Chat * @description: * @author: 王丁 * @date: 2021-09-28 11:22 **/ public class AgeException extends Exception { public AgeException(){ super("年齡不能為負(fù)數(shù)"); } }
AgeTest測(cè)試類(lèi)
package com.lding.exception; /** * @program: Chat * @description: * @author: 王丁 * @date: 2021-09-28 11:23 **/ public class ExceptionTest { public static void testage(int age) throws AgeException { if(age<0){ throw new AgeException(); } } public static void main(String[] args) { int age=-1; try { testage(age); } catch (AgeException e) { e.printStackTrace(); } } }
測(cè)試結(jié)果
到此這篇關(guān)于Java 認(rèn)識(shí)異常并掌握使用的文章就介紹到這了,更多相關(guān)Java 異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
非常全面的Java?SpringBoot點(diǎn)贊功能實(shí)現(xiàn)
但是這些功能再項(xiàng)目中是高頻出現(xiàn)的,如果直接操作數(shù)據(jù)庫(kù)的話(huà),對(duì)數(shù)據(jù)庫(kù)壓力太大。那遇到這個(gè)問(wèn)題怎么解決?這篇文章主要給大家介紹了關(guān)于Java?SpringBoot點(diǎn)贊功能實(shí)現(xiàn)?的相關(guān)資料,需要的朋友可以參考下2022-01-01Java實(shí)現(xiàn)AOP面向切面編程的實(shí)例教程
這篇文章主要介紹了Java實(shí)現(xiàn)AOP面向切面編程的實(shí)例教程,通常Java中的AOP都是利用Spring框架中造好的輪子來(lái)開(kāi)發(fā),而本文則關(guān)注于Java本身AOP的設(shè)計(jì)模式實(shí)現(xiàn),需要的朋友可以參考下2016-04-04java實(shí)現(xiàn)兩個(gè)線(xiàn)程交替打印的實(shí)例代碼
在本篇文章里小編給大家整理的是一篇關(guān)于java實(shí)現(xiàn)兩個(gè)線(xiàn)程交替打印的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考下。2019-12-12Struts2 Result 返回JSON對(duì)象詳解
這篇文章主要講解Struts2返回JSON對(duì)象的兩種方式,講的比較詳細(xì),希望能給大家做一個(gè)參考。2016-06-06如何修改覆蓋spring boot默認(rèn)日志策略logback詳解
這篇文章主要給大家介紹了關(guān)于如何修改覆蓋spring boot默認(rèn)日志策略logback的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10SpringBoot org.springframework.beans.factory.Unsatisfie
本文主要介紹了SpringBoot org.springframework.beans.factory.UnsatisfiedDependencyException依賴(lài)注入異常,文中通過(guò)示例代碼介紹的很詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02java使用靜態(tài)關(guān)鍵字實(shí)現(xiàn)單例模式
這篇文章主要為大家詳細(xì)介紹了java使用靜態(tài)關(guān)鍵字實(shí)現(xiàn)單例模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04Java實(shí)現(xiàn)反轉(zhuǎn)一個(gè)鏈表的示例代碼
本文主要介紹了Java實(shí)現(xiàn)反轉(zhuǎn)一個(gè)鏈表的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07springboot如何添加task任務(wù)執(zhí)行隊(duì)列
這篇文章主要介紹了springboot如何添加task任務(wù)執(zhí)行隊(duì)列問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07