美文网首页
2022-12-23

2022-12-23

作者: RobertLiu123 | 来源:发表于2022-12-22 17:23 被阅读0次

一、异常体系树

image.png

二、Error错误

描述的是错误,比如主板烧坏了、网络断了等程序员无法处理的问题

三、Exception异常

描述的是程序上的问题,程序员可以通过严谨的编码习惯和处理,防止异常的发生

四、检查性异常

需要指出,检查性异常虽然是在编码过程中报红,但是不是语法错误,需要处理

五、运行时异常

顾名思义,程序编码过程中不会提示,需要到运行后才能看到

六、处理异常的方式

1、在方法体中处理
try catch
2、在方法声明处处理
throws

七、try catch

1、try catch处理时,异常在自己方法内部就被处理了,调用这个方法的地方压根感知不到异常的存在
2、try后边可以接很多catch,要求不能重复、子类异常要写到父类异常前边
3、建议最后放一个Exception用于兜底
4、执行的时候,会从上到下选符合异常的类型,找到后进去执行对应的catch块中的内容

八、throws

1、throws处理时,谁调用throws所在的方法,谁就会感知到异常的存在,因此也需要处理,可以选择try catch或者是throws,当然,选择throws,下一个调用它的方法,也需要处理
2、一般认为throws是一种不太负责的处理方式,因为相当于自己没处理,而把异常抛出给了调用它的方法,因此在主方法中不建议throws,这会把异常抛给jvm,建议在主方法中就try catch

九、异常发生时jvm的作用

异常发生前语句正常执行,当异常发生,jvm会自动抛出一个对应类型的异常对象并打印异常信息,同时停止执行程序,这样做是为了系统安全因此异常后的语句不会执行

十、try catch的几种状态

try{
①
System.out.println(1/0);
②
}catch(Exception e){
③
}
④

异常种类对,①③④可以执行

try{
①
System.out.println(1/0);
②
}catch(IndexOutOfBoundsException e){
③
}
④

异常种类不对,只有①

try{
①
System.out.println(1/0);
②
}catch(IndexOutOfBoundsException e){
③
}finally{
⑤
}
④
try{
①
System.out.println(1/0);
②
}catch(Exception e){
③
}finally{
⑤
}
④

finally块不论异常种类对不对都会被执行,因此finally经常应用于,程序执行后必要的操作,比如资源释放
也可以不写catch,try后直接跟finally,比如:

try{
①
System.out.println(1/0);
②
}finally{
⑤
}
④

十一、Exception常用方法

构造方法
getCause()
getMessage()
getStackTrace()
printStackTrace()

十二、

final、finally、fianlize区别
fianl可以修饰量、方法、类
finally 异常处理块中最后总要被执行的
finalize 垃圾回收机制

十三、throw

手动引发异常
throw 挑事
throws 平事

十四、自定义异常

相关文章

网友评论

      本文标题:2022-12-23

      本文链接:https://www.haomeiwen.com/subject/nhdvqdtx.html