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)
链接: .
