Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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中检查异常的用法是什么?_Java_Exception_Runtimeexception - Fatal编程技术网

java中检查异常的用法是什么?

java中检查异常的用法是什么?,java,exception,runtimeexception,Java,Exception,Runtimeexception,在甲骨文文档中,它说 如果可以合理预期客户机从异常中恢复,则将其设置为已检查异常。如果客户端无法从异常中恢复,请将其设置为未检查的异常 例如,ClassNotFoundException和CloneNotSupportedException是检查异常的两个示例,但是如果我们在运行时捕获这些类型的异常,客户端将无法解决它们。 但是,如果他们用“客户端”这个词来指开发人员,那也没有意义,因为程序员在运行时无法从这些类型的异常中恢复 在出现问题时清理混乱/继续,好像什么都没发生/尝试另一种方式完成任务

在甲骨文文档中,它说

如果可以合理预期客户机从异常中恢复,则将其设置为已检查异常。如果客户端无法从异常中恢复,请将其设置为未检查的异常

例如,ClassNotFoundException和CloneNotSupportedException是检查异常的两个示例,但是如果我们在运行时捕获这些类型的异常,客户端将无法解决它们。
但是,如果他们用“客户端”这个词来指开发人员,那也没有意义,因为程序员在运行时无法从这些类型的异常中恢复

  • 在出现问题时清理混乱/继续,好像什么都没发生/尝试另一种方式完成任务。假设您已打开数据库连接并从中读取。如果出现异常情况,您需要确保在离开该场所之前清理干净。例如,您可以在finally块中使用connection.close()。您不希望应用程序因一个不太严重的错误而致命地抛出异常

  • 您可能需要重新抛出异常。假设这是与上面相同的异常,但这不是您要向用户显示的消息。您可以编写一个映射程序,该映射程序会抛出您使用所需消息编写的自定义异常


  • 是的,他能。对于CloneNotSupportedException,他可以求助于另一种复制算法。在ClassNotFoundException上,他可以尝试找到另一个要实例化的类(考虑反射)。根据您的类比,对于未选中的异常,您可以说出相同的事情,例如在算术异常或IllegalArgumentException的情况下,您可以向用户请求新的(正确的)值。这是正确的。但是改变克隆算法可以在没有用户交互的情况下完成。当您遇到非法参数时,如果没有更多信息,您将无法恢复。因此,您在oracle文档中合理地推断出
    一词,意思是静默且没有用户交互。因为我认为向用户请求正确的输入是合理的。是的,因为“客户机”的意思是“调用抛出异常的方法的代码”。