Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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/8/sorting/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.lang.RuntimeException_Java_Exception Handling - Fatal编程技术网

为什么要扩展java.lang.RuntimeException

为什么要扩展java.lang.RuntimeException,java,exception-handling,Java,Exception Handling,我最近被问到一个问题,显然是在一次采访中,关于扩展java.lang.RuntimeException 我被要求引用一个需要扩展java.lang.RuntimeException的例子 我一直认为我们不需要扩展RuntimeException,有人能告诉我吗 谢谢, 某人 RuntimeException是的超类 那些可以抛出的异常 在系统正常运行期间 Java虚拟机 不需要在中声明方法 它的任何子类 可能引发的运行时异常 在方法执行期间,但是 没有被抓住 请参见RuntimeExceptio

我最近被问到一个问题,显然是在一次采访中,关于扩展java.lang.RuntimeException

我被要求引用一个需要扩展java.lang.RuntimeException的例子

我一直认为我们不需要扩展RuntimeException,有人能告诉我吗

谢谢, 某人


RuntimeException是的超类 那些可以抛出的异常 在系统正常运行期间 Java虚拟机

不需要在中声明方法 它的任何子类 可能引发的运行时异常 在方法执行期间,但是 没有被抓住


请参见

RuntimeException是Java虚拟机正常运行期间可以引发的异常的超类


如果向jdk添加新功能或修改jvm实现,则应扩展RuntimeException以添加新的RuntimeException。

在创建不必显式捕获的异常(未选中的异常)时,您希望扩展RuntimeException。这是异常的情况,表示通常无法恢复的问题(例如,死数据库)


您应该了解Java中检查异常和未检查异常之间的区别

您应该遵守这些规则,不应扩展此异常,因为它通常应用于不能执行更多操作且操作应被中断的地方


但是,如果您需要为这种情况找到一个应用程序,您可以说,通过创建不同类型的RuntimeException,我们可以有更多的控制in-out异常处理程序来显示异常等消息。但是,我认为这只是一个游戏

当客户端无法从程序中合理恢复时,我会抛出运行时异常, 这些通常是未经检查的异常,主要是代码中的bug,客户端不希望在运行时恢复


示例:到数据源的死链接、JNDI绑定失败、某些操作的前置条件失败(分母为零的除法)都是此RuntimeException子类化的场景

我可以看到容器,例如servlet容器;REPLs和/或任何顶级解释器循环;等等。合法地选择和捕获运行时异常,因为它们不应该仅仅因为堆栈中的某些内容更深而崩溃

与容器的情况类似,跨越相邻边界(例如,跨越层或层)通常需要更明确的异常语义


如果'cause'和/或message属性在语义上不足以表达除“hey,it break”之外的任何内容,并且客户机/更高层可以有选择地采取行动,那么子类RuntimeException可以说是合法的

我不是在寻找RuntimeException的定义或可能的原因。有人能给出一个扩展RuntimeException的例子和理由吗。此外,我相信这不会让我感到困惑。可能是