Java异常详解
Java异常划分为两类:受检(checked)和非受检(unchecked)
- 若异常是类java.lang.RuntimeException或java.lang.Error的子类,则为非受检异常。
- 若异常是类java.lang.Exception或其子对象,但非属于java.lang.RuntimeException或其子对象,则为受检异常。
受检异常是一个合理应用应该试图妥善处理的问题,而非受检异常(运行时异常或错误)是另一类的问题,软件通常无法由此正常恢复。错误类型则显然是一些特殊的条件,对此我们并不打算处理或由其恢复。
受检的含义,是受编译程序检查。其目的,在于API设计者认为,调用这个方法时,出错机会很高,因此要求编译程序协助(或提醒)调用API的用户明确使用语法处理,你无权选择要不要处理。
RuntimeException衍生出来的类实例,通常是事先无法预测错误是否发生的执行时期异常,编译程序不会强迫一定得在语法上加以处理。
Exception的子类
Error子类
参考:Java学习指南