Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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 何时应包装运行时/未检查的异常-例如CompletionException_Java_Exception_Exception Handling_Java 8_Runtimeexception - Fatal编程技术网

Java 何时应包装运行时/未检查的异常-例如CompletionException

Java 何时应包装运行时/未检查的异常-例如CompletionException,java,exception,exception-handling,java-8,runtimeexception,Java,Exception,Exception Handling,Java 8,Runtimeexception,何时应该包装运行时/未检查的异常?需要什么? 为什么在java8中引入了CompletionException?java中还有其他示例,请尽可能多地包含示例。每当我引入接口时,我都会包装选中的异常。例如,如果我有一个接口 public interface DoSomething { void doSomething() throws DoSomethingException } 使用我自己选中的异常类DoSomethingException。这是因为我正在与接口的客户机签订一项合同,只有该异常

何时应该包装运行时/未检查的异常?需要什么?
为什么在
java8
中引入了
CompletionException
?java中还有其他示例,请尽可能多地包含示例。

每当我引入接口时,我都会包装选中的异常。例如,如果我有一个接口

public interface DoSomething { void doSomething() throws DoSomethingException }
使用我自己选中的异常类
DoSomethingException
。这是因为我正在与接口的客户机签订一项合同,只有该异常才会被抛出。这将客户机与
DoSomething
实现引发的异常分离。无论我是否捕获
运行时异常
并用选中的异常进行包装,我都会根据具体情况进行处理。例如,如果
DoSomething
的一个实现使用了一个抛出
RuntimeException
s的类,我将捕获
RuntimeException
s并将它们包装到我选中的异常中


Java8中引入的
java.util.concurrent.CompletionException
是concurrent包的一部分,它表明它用于Java8中引入的新并发工具。例如,

谢谢你的回答。我理解在检查异常的情况下包装的需要,我的问题是检查异常。我要问的另一个问题是,为什么在java8中引入completionException类?每当您投票赞成close时,请选择评论您的理由。作为反馈可能会有帮助,但你没有。霍尔格的问题不是谁做的,而是为什么?需要什么?看和