Throwable是所有异常的重中之重。在Throwable下面,您有Error和Exception。在异常下,您具有RuntimeException。
Java有两种类型的异常-
已检查和未检查。被检查的异常由编译器强制执行(您必须在throws子句中声明它们并最终捕获它们)。未强制使用未经检查的异常在throws子句中进行捕获或声明。
(答案中有争议的部分)
存在Throwable,因此所有异常类型都有一个父级。您永远不要声明自己抛出Throwable,也不要抓住它(除非您真的非常真正地知道自己在做什么)。
存在错误以指示运行时环境问题,程序可能无法从中恢复的事情,例如格式错误的类文件或VM内存不足。除非您真的知道自己在做什么,否则不要捕获错误。
异常作为所有非程序员错误的根存在(请参见RuntimeException的“例外”),例如由于磁盘已满而无法创建文件。您不应该抛出,抛出或捕获Exception。如果必须赶上Exception,请确保您知道自己在做什么。
存在RuntimeException以指示所有程序员错误,例如,超出数组末尾或对空对象调用方法。这些是您应该修复的事情,以便它们不会引发异常-
表示您,程序员,搞砸了代码。同样,除非您知道自己在做什么,否则不要抓住这些。



