总体上异常分三类:
- 错误
- 运行时异常
- 可查异常
运行时异常与非运行时异常的区别(面试题) :
运行时异常是不可查异常,不需要进行显式的捕捉
非运行时异常是可查异常,必须进行显式的捕捉,或者抛出
注:运行时异常是运行的时候抛出的异常,非运行时异常,不运行也能抛出
错误Error,能否被捕捉?
那为什么不该捕获Error呢?因为出现Error的情况会造成程序直接无法运行,所以捕获了也没有任何意义。那我的问题又来了,如果不捕获,那程序出问题退出了,连log都看不见,我该怎么办?其实这个假设是不成立的,因为如果Error真的存在,你在开发环境就已经发现问题了,根本不可能发布到正式环境。