通过RuntimeException
也是RuntimeException
类型的编译器认为Exception
未选中是什么。但是Exception
是否被检查为异常?
答案 0 :(得分:1)
也就是说,检查的异常类是
Throwable
及其除RuntimeException
及其子类以及Error
及其子类之外的所有子类。
这就是规则,编译器已经知道了。给定的异常是RuntimeException
的子类(比如说givenException instanceof RuntimeException
)的事实足以使编译器不将其视为已检查的异常。
类
RuntimeException
是Exception
的直接子类。RuntimeException
是所有异常的超类,这些异常可能在表达式求值过程中由于多种原因而抛出,但仍然可以从中进行恢复。
RuntimeException
及其所有子类共同是运行时异常类。
答案 1 :(得分:0)
Java编译器将Error
和RuntimeException
都指定为Throwable
的两个特殊子类,以指示您无法预期的异常类型,因此编译器无法强制您执行以下操作:在编译时处理它。扩展这两个子项(Error
和RuntimeException
)中任何一个的类将由编译器继承相同的处理方式。
通常,对于运行时无法预期的事情,例如,使用超出其容量的索引访问数组,您应该依赖运行时异常。另外,您的应用程序通常不会恢复运行时异常和错误。这就是为什么作为良好的开发实践,您只应将它们作为处理异常的默认模式。