Java异常处理如何优雅的不处理

java异常类层次结构图

16259233380399

异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标越界、内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图。错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然而运行期间的错误便不是编译器力所能及了,并且运行期间的错误往往是难以预料的。假若程序在运行期间出现了错误,如果置之不理,程序便会终止或直接导致系统崩溃,显然这不是我们希望看到的结果。因此,如何对运行期间出现的错误进行处理和补救呢?Java提供了异常机制来进行处理,通过异常机制来处理程序运行期间出现的错误。通过异常机制,我们可以更好地提升程序的健壮性。

截屏2021-07-10 下午9.20.34

  • unchecked exception(非检查异常)也称运行时异常(RuntimeException)对于运行时异常,java编译器不要求必须进行异常捕获处理或者抛出声明,由程序员自行决定。

  • checked exception(检查异常,编译异常)也称非运行时异常(运行时异常以外的异常就是非运行时异常),java编译器强制程序员必须进行捕获处理,

如何处理异常

  • 写日志

  • 执行相关处理逻辑

如何不处理异常

截屏2021-07-10 下午9.18.56

  • 如果能,添加throws定义

  • 否则将Checked Exception转化成Unchecked Exception, 再抛出

  • 转化时必须带上Cause;

throw new RuntimeException(checkedException);