Java存在三种可抛出结构(throwable):受检异常(checked exception)、运行时异常(runtime exception)和错误(error)。
使用原则是:
1、如果期望调用者能够恢复,则应该使用受检异常。抛出受检异常,可以强迫调用者在一个catch子句中处理该异常,或者继续向外传播。
2、运行时异常是指难以恢复或者不可恢复的程序错误。大多数运行时异常都是表明前提违例:precondition violation指API的调用方没有遵循调用约定
3、错误(error)被JVM保留用于指示资源不足、约束失败或者其他程序无法继续执行的情况。最好不要实现新的Error子类,所有抛出的未受检异常都应该是RuntimeException的子类。
使用原则是:
1、如果期望调用者能够恢复,则应该使用受检异常。抛出受检异常,可以强迫调用者在一个catch子句中处理该异常,或者继续向外传播。
2、运行时异常是指难以恢复或者不可恢复的程序错误。大多数运行时异常都是表明前提违例:precondition violation指API的调用方没有遵循调用约定
3、错误(error)被JVM保留用于指示资源不足、约束失败或者其他程序无法继续执行的情况。最好不要实现新的Error子类,所有抛出的未受检异常都应该是RuntimeException的子类。