JavaDoc:RuntimeException and its subclasses are unchecked exceptions. Unchecked exceptions do not need to be declared in a method or constructor's throws clause if they can be thrown by the execution of the method or constructor and propagate outside the method or constructor boundary.
原则:
引用某个人的话:几乎在所有的情况下都不应当使用检查型异常。当遇到检查型异常无法处理的情况时,应该使用异常转译转换为非检查型异常再抛出。(原作者不明) 在Think in Java 4th Edition上作者对这样的观点进行了详细的描述。
3.如何可能的话,应该在系统级被捕捉。
JavaDoc: An Error is a subclass of Throwable that indicates serious problems that a reasonable applicationshould not try to catch.
Error and its subclasses are regarded as unchecked exceptions for the purposes of compile-time checking of exceptions.