Java 認(rèn)識(shí)異常并掌握使用
Error
Java中的錯(cuò)誤是不能被處理的,由JVM(Java虛擬機(jī))拋出
Exception
異常是可以被處理的
常見的錯(cuò)誤和異常如下圖

對(duì)于異常,必須要進(jìn)行捕捉或聲明拋出
- 1.捕獲異常
try-執(zhí)行可能產(chǎn)生異常的代碼
catch-捕獲異常
finally-無論是否發(fā)送異常代碼總能執(zhí)行
try… catch… 相當(dāng)于自己處理了異常
- 2.聲明異常
throws -聲明可能要拋出的異常
throws會(huì)將異常直接拋給上層處理
- 3.throw
throw-生成一個(gè)異常類對(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ù),接受用戶鍵盤輸入,輸出兩數(shù)之商
Scanner input = new Scanner(System.in);
System.out.println("=======運(yùn)算開始========");
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í)行的語句
}
finally {//無論是否出錯(cuò)都一定會(huì)執(zhí)行的語句
System.out.println("======運(yùn)算結(jié)束========");
}
}
}
運(yùn)行結(jié)果

注意:當(dāng)使用多重try…catch時(shí)要注意范圍,大范圍的(即父類)要后置
自定義異常類
AgeException類 寫一個(gè)類繼承Exception
在里面寫其構(gòu)造方法,在構(gòu)造方法中調(diào)用父類方法,傳入字符串
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è)試類
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)文章
json序列化時(shí)忽略值為null的字段2種方式實(shí)例
這篇文章主要給大家介紹了關(guān)于json序列化時(shí)忽略值為null的字段的2種方式,當(dāng)對(duì)象中某個(gè)字段為null時(shí),我們希望將對(duì)象轉(zhuǎn)換成json時(shí)為null的字段不會(huì)被轉(zhuǎn)換到j(luò)son字符串,里面需要的朋友可以參考下2023-10-10
Java實(shí)現(xiàn)WORD和PDF互相轉(zhuǎn)換以及數(shù)據(jù)填充示例
本文介紹了如何使用Java實(shí)現(xiàn)WORD和PDF的互轉(zhuǎn)以及數(shù)據(jù)填充功能,通過導(dǎo)入Aspose庫并使用其工具類,可以輕松實(shí)現(xiàn)WORD和PDF模板的填充和轉(zhuǎn)換,需要的朋友可以參考下2025-02-02
Java MyBatis返回兩個(gè)字段作為Map的key和value問題
使用MyBatis查詢兩個(gè)字段并返回Map時(shí),需要注意數(shù)據(jù)量和值的類型,直接返回Map會(huì)導(dǎo)致報(bào)錯(cuò),使用@MapKey注解可以生成Map,但值是對(duì)象而不是直接值,為了解決這個(gè)問題,可以自定義一個(gè)Map結(jié)果處理器MapResultHandler2024-12-12
Java Listener監(jiān)聽器使用規(guī)范詳細(xì)介紹
監(jiān)聽器是一個(gè)專門用于對(duì)其他對(duì)象身上發(fā)生的事件或狀態(tài)改變進(jìn)行監(jiān)聽和相應(yīng)處理的對(duì)象,當(dāng)被監(jiān)視的對(duì)象發(fā)生情況時(shí),立即采取相應(yīng)的行動(dòng)。監(jiān)聽器其實(shí)就是一個(gè)實(shí)現(xiàn)特定接口的普通java程序,這個(gè)程序?qū)iT用于監(jiān)聽另一個(gè)java對(duì)象的方法調(diào)用或?qū)傩愿淖?/div> 2023-01-01最新評(píng)論

