Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是什么使子类,即RuntimeException,被取消选中并检查异常成为可能?_Java_Exception Handling_Runtimeexception - Fatal编程技术网

Java 是什么使子类,即RuntimeException,被取消选中并检查异常成为可能?

Java 是什么使子类,即RuntimeException,被取消选中并检查异常成为可能?,java,exception-handling,runtimeexception,Java,Exception Handling,Runtimeexception,是什么使编译器可能认为RuntimeException未检查,尽管RuntimeException也属于Exception类型。但是Exception是否选中了Exception?Java编译器将Error和RuntimeException指定为Throwable的两个特殊子类,以指示您无法预料的异常类型,因此编译器无法强制您在编译时处理它。任何扩展这两个子类(Error和RuntimeException)的类都将继承编译器的相同处理 通常,对于运行时无法预料的事情,例如使用超出其容量的索引访问

是什么使编译器可能认为
RuntimeException
未检查,尽管
RuntimeException
也属于
Exception
类型。但是
Exception
是否选中了Exception?

Java编译器将
Error
RuntimeException
指定为
Throwable
的两个特殊子类,以指示您无法预料的异常类型,因此编译器无法强制您在编译时处理它。任何扩展这两个子类(
Error
RuntimeException
)的类都将继承编译器的相同处理

通常,对于运行时无法预料的事情,例如使用超出其容量的索引访问数组,您应该依赖运行时异常。此外,应用程序通常不会恢复运行时异常和错误。这就是为什么作为一种良好的开发实践,您应该只依赖它们作为处理异常的默认模式

也就是说,选中的异常类是
Throwable
及其所有子类,而不是
RuntimeException
及其子类和
Error
及其子类

这是规则,编译器知道这一点。给定的异常是
RuntimeException
的子类(比如
givenException instanceof RuntimeException
)这一事实足以使编译器不将其视为已检查异常

RuntimeException
Exception
的直接子类
RuntimeException
是所有异常的超类,这些异常在表达式求值期间可能由于多种原因引发,但仍然可以从中恢复

RuntimeException
及其所有子类统称为运行时异常类