java异常体系结构详解


前言

一、异常是什么?

1.定义

异常:程序运行过程中,由于某些原因导致程序出错,从而结束程序运行,这就称为异常

2.java异常的结构分析图

Java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。Throwable又派生出Error类和Exception类。

2.异常: Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。

二、java中的异常处理机制

`***`` try -定义可能发生异常的代码 (监控区域) ```

catch -用来捕捉try中发生的异常(捕获异常区域)

finally - 无论是否有异常都会执行的代码(处理善后工作)

throw - 抛出异常

throws -声明异常

处理完异常后,可以保证程序继续运行***

三.java中异常处理结构

1. try-catch 结构:

1.异常捕获代码

输出结果如下:

2.无异常捕获代码

输出结果 总结:try中监控区出现异常则运行至异常捕获区域catch进行处理,如果无异常抛出则不进行异常捕获。

2.try-catch-finally

代码如下(示例):

输出结果 总结:

1.有没有自定义异常抛出finally都会运行执行
          2.finally在一种情况下不能被执行:当执行到System.exit(1)用来强制关闭虚拟机时

finally在一种情况下不能被执行:当执行到System.exit(1)用来强制关闭虚拟机时

3.多重catch使用结构

1.正确代码案例

如果有多重catch时,先定义子异常,最后定义父异常(先子类后父类,从特殊到一般) 根据异常结构图分析异常类关系

public static void main(String[] args) {
    int x = 1;
    int y = 1;
    try {//监控区域
        System.out.println(x / y);
    } catch (Error erro) {//捕获异常的区域 Error异常
        System.out.println("Error");
    } catch (Exception Exception) {//Exception 异常
        System.out.println("Exception");
    } catch (Throwable Throwable) {//Throwable  异常
        System.out.println("Exception");
        
       / /异常结构由小到大进行捕获:Error-Exception -Throwable 先定义子异常后定义父异常 
    }finally{//有没有异常都执行此代码
        System.out.println("有没有异常我都会运行的	芭比Q优");
    }
}
}
输出结果: 1 
           有没有异常我都会运行的芭比Q优

异常结构由小到大进行捕获:Error-Exception -Throwable 先定义子异常后定义父异常

2.错误代码案例

输出结果

3.异常打印输出

异常打印输出结果:

java.lang.ArithmeticException: / by zero
	at dom.Domr.main(Domr.java:17)

链接: .

经验分享 程序员 微信小程序 职场和发展