Java 异常 总结 try catch finally Exception

简介: 技巧

异常

定义


表示程序在运行过程中出现的非正常情况,编写代码的过程中尽可能少的减少异常出现的情况


分类


Throwable

Error 代码级别无法解决的异常情况

Exception

运行时异常:在程序运行过程中,由于输入的参数值的不同,可能会发生也可能不会发生

checked异常 :编译时异常,在ide中会显示的检查出来

异常的处理


捕获异常1、



10.png



捕获异常2、11.png

注意


当发生异常时,在try代码块中异常语句后面的语句不会再执行


try、catch、finally以及try…catch…finally之外的代码是互相独立的,在try中定义的变量在其他的部分无法访问,改变了仅作用于try部分,其他catch、finally情况类似,但是外部定义的变量在try、catch、finally中可以使用


在进行异常捕获的时候,return语句的不同位置会造成结果的不同


首先讨论try…catch…finally后面有代码的情况12.png

13.png


2.try…catch…finally后面没有代码的情况

14.png16.png


综上:

return语句会被挂起,等执行完finally中的语句后再执行

当存在两个return语句时且都能被执行时,优先执行finally中的return

抛出异常


throws


将异常情况抛出给调用者


注意,如果整个程序的运行过程中都没有异常的处理的话,最终异常会抛给jvm,不太友好,一般都要对异常进行处理


17.png

自定义异常

java中提供了非常多的异常类,但是在某些项目中需要自己定义独特的异常处理方式,此时需要自定义异常

继承Exception

编写构造方法,可以传入自己想打印的异常信息

调用的时候通过throw向外抛出异常

18.png

另外,还可以自定义异常信息

19.png

相关文章
|
2月前
|
Java
java自定义Service的异常
java自定义Service的异常
15 0
|
2月前
Exception in thread “main“ java.lang.NoClassDefFoundError: freemarker/template/Configuration
Exception in thread “main“ java.lang.NoClassDefFoundError: freemarker/template/Configuration
21 0
|
6天前
|
Java API
【JAVA】final、finally、finalize 有什么区别?
【JAVA】final、finally、finalize 有什么区别?
|
6天前
|
Java 程序员 编译器
|
6天前
|
Java
Java Exception打印及输出到日志
有时候如果打印出异常的错误,并记录下来,这里记录一下
18 5
|
7天前
Swagger2异常:java.lang.NumberFormatException: For input string: ““
Swagger2异常:java.lang.NumberFormatException: For input string: ““
16 1
|
8天前
|
存储 Java 程序员
JavaSE&Java的异常
JavaSE&Java的异常
23 0
|
19天前
|
Java 开发者
Java中的受检异常和非受检异常的区别
Java中的受检异常和非受检异常的区别
|
24天前
|
Java
Java中的异常类总结
Java中的异常类总结
|
2月前
|
Java Maven Spring
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
50 0