2023年11月29日发(作者:)

java判断exception类型_Java学习(⼗⼆):异常处理

1. 异常概述

Java的异常处理机制也秉承着⾯向对象的基本思想。在Java中,所有的异常都是以类的类型存在。除了内置的异常类之外,Java也可以⾃

定义异常类。此外,Java的异常处理机制也允许⾃定义抛出异常。

2. 处理错误特点

不需要打乱程序的结构,如果没有任何错误产⽣,那么程序的运⾏不受任何影响。

不依靠⽅法的返回值来报告错误是否产⽣。

采⽤集中的⽅式处理错误,能够根据错误种类的不同来进⾏对应的错误处理操作。

3. 常见的异常

4. 抛出异常

4.1 thorws关键

在⽅法中使⽤thorws关键字抛出错误

语法

[权限修饰符] 返回类型 ⽅法名 throws 具体错误类{ ....}

⽰例

public class Main { public static void main(String[] args) { n(divsion(10,0)); } /** * description: 测试除法异常 **/ public static int div

4.1 thorw关键

使⽤⽰例

public class Main { public static void main(String[] args) { n(divsion(10,0)); } /** * description: 测试除法异常 **/ public static int div

5. 捕捉异常

异常捕获处理是由try、catch与finally等3个关键字所组成的程序块,其语法如下所⽰

5.1 try-catch

try { // todo ...} catch (ArithmeticException e) { // 捕获到对应的异常}

5.2 try-catch-catch

try { // todo ...} catch (ArithmeticException e) { // 捕获到对应的异常} catch (ArithmeticException e) { // 捕获到对应的异常}

5.3 try-finally

try { // todo ...} finally (ArithmeticException e) { // 总会处理的逻辑}

5.4 try-catch-finally

try { // todo ...} catch (ArithmeticException e) { // 捕获到对应的异常} finally (ArithmeticException e) { // 总会处理的逻辑}

6. 异常类关系图

6.1 异常类型的继承关系

异常类型的最⼤⽗类是Throwable类,其分为两个⼦类,分别为Exception、Error。Exception表⽰程序可处理的异常,⽽Error表⽰JVM

错误,⼀般⽆需程序开发⼈员⾃⼰处理。

6.2 RuntimeExceptionException的区别

RuntimeException类是Exception类的⼦类。

Exception定义的类,强制性要求⽤户必须处理

RuntimeException定义的异常可以选择性地进⾏处理。

7.⾃定义异常类

⾃定义类的语法:

class 异常类名 extends Exception { public 异常类名 (String msg) { //调⽤Exception类的构造⽅法,存⼊异常信息 super(msg); }}

使⽤⽰例:

public class userDefinedException{ public static void main(String[]args) { try { throw new MyException("⾃定义异常--仅为测试演⽰!"); } catch(MyExcepti