最近在项目中集成了LeakCanry 来检测项目中出现内存泄漏,结果发现了EventBus 导致的内存的泄漏,然后引出了ExecitorService 的submit方法会catch掉所有的异常的问题(包含运行时异常)。
1, Java中的异常之RuntimeException
下面的链接是关于Runtime Exception 的描述:
https://www.tutorialspoint.com/how-to-handle-the-runtime-exception-in-java
1.1 运行时异常的概念
运行时异常是Java编程语言的所有的异常的父类;当运行时异常
发生的时候,程序或者应用应该崩溃。跟其他的不是运行时异常不同,运行时异常永远不会被检查。
运行时异常通常显示程序员的错误,而不是程序处理的条件。当一个条件不能发生的时候,运行时的异常也会被使用到。应该注意的是:当让一个程序的内存用完了,一个程序的错误会被抛出而不是显示运行时异常。
1.2 常见的运行时异常
下面是常见的运行时异常:
NullPointerException
ArrayIndexOutOfBoundsException
InvalidArgumentException
IllegalArgumentExeception