异常
代码中的异常
Throwable类
Java中异常的超类,在Java中所有的异常,错误的基类就是Throwable类
Throwable
----| Exception 异常 可以批处理,代码还有拯救的可能性
----| Error 错误 GGWP
Throwable常用方法
Constructor:
Throwable();Throwable构造方法, Throwable类对象中,存储的异常或者错误信息为null
Throwable(String message); Throwable类对象中,存储的异常或者错误信息为message
Method:
String getMessage();获取Throwable对象中存储的异常或者错误信息
String toString();返回值异常或者错误的简要描述
void printStackTrace(); 展示错误的前因后果
Error和Exception之间的区别
Error 错误,不可以处置,只能避免
Exception 异常,可以处置
异常处理
捕获异常
try - catch
try - catch - finally 结构
格式:
try {
//有可能出现异常代码
} catch {
//处理方式
}
捕获异常问题总结:
1. 代码中从异常发生位置开始,之后的代码都不在运行
2. 代码中有多个异常,可以使用多个catch块进行捕获操作,分门别类处理
3. 当前情况下,只能展示异常情况
4. 异常被捕获之后代码可以正常运行
抛出异常
throw
在方法内抛出异常
throws
在【方法声明】位置,告知调用者当前方法有哪些异常抛出
声明的异常需要生成对应的文档注释
抛出异常总结
1. 一个代码块内,有且只能抛出一个异常
2. 从throw位置开始,之后的代码不在运行
3. 从代码中存在使用throw抛出异常,在方法的声明位置必须告知调用者这里有什么异常
抛出和捕获的对比
捕获之后,代码可以正常运行,要保证处理之后的异常不会再导致其他问题
抛出的确可以解决很多问题,并且可以让带吗健壮性很强。到用户层面说什么都不能抛出异常
所谓不能抛出,是指不能将错误信息直接摔到用户脸上
自定义异常
格式:
class 自定义异常类名 extends Exception {
// no Fields Constructor
// String Field Constructor
}
// 自定义异常类名,必须Exception结尾