java提供了三种可以抛出的结构:
1. 受检异常(checked exception)
2. 运行时异常(runtime exception)
3. 错误(error)
运行时异常和错误都是不需要也不应该被捕获的可抛出结构。如果程序抛出运行时异常或者错误,说明出现了不可恢复的情形,继续执行下去有害无益。如果没有捕捉到这样的结构,将会导致当前线程停止,并出现适当的错误消息。
使用原则:
1. 如果期望调用者能够适当地恢复,对于这种情况就使用受检的异常。
2. 用运行时异常来表明编程错误。
3. 如果不清楚是否有可能恢复,则使用未受检异常。