[英]Why Exception class is checked as its child class RuntimeException is unchecked in Java?
[英]What make it possible that child class i.e. RuntimeException is unchecked and Exception is checked?
是什么让编译器认为RuntimeException
未检查,但RuntimeException
也是Exception
类型。 但是Exception
是检查异常吗?
也就是说,被检查的异常类是
Throwable
及其除RuntimeException
及其子类和Error
及其子类以外的所有子类。
这是规则,编译器知道它。 给定异常是RuntimeException
的子类(假设givenException instanceof RuntimeException
)这一事实足以让编译器不将其视为已检查异常。
RuntimeException
类是Exception
的直接子类。RuntimeException
是所有异常的超类,在表达式计算过程中可能由于多种原因抛出这些异常,但仍然可以从中恢复。
RuntimeException
及其所有子类统称为运行时异常类。
Java 编译器将Error
和RuntimeException
都指定为Throwable
两个特殊子类,以指示您无法预料的异常类型,因此编译器无法强制您在编译时处理它。 任何扩展这两RuntimeException
( Error
和RuntimeException
)的任何类都将继承编译器的相同处理方式。
通常,对于在运行时无法预料的事情,例如使用超出其容量的索引访问数组,您应该依赖运行时异常。 此外,您的应用程序通常不会恢复运行时异常和错误。 这就是为什么作为一个好的开发实践,你应该只依赖它们作为处理异常的默认模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.