作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
嘿,我正在编写一个网络应用程序,我在其中读取一些自定义二进制格式的数据包。我正在启动一个后台线程来等待传入的数据。问题是,编译器不允许我将任何抛出(检查)异常的代码放入 run()
中。它说:
run() in (...).Listener cannot implement run() in java.lang.Runnable; overridden method does not throw java.io.IOException
我希望异常杀死线程,并让它在父线程的某个地方被捕获。这可能实现还是我必须处理线程内部的每个异常?
最佳答案
为了能够将异常发送到父线程,您可以将后台线程放在 Callable 中。 (它还允许抛出检查异常),然后将其传递给 submit some Executor的方法| .提交方法将返回 Future然后您可以使用它来获取异常(它的 get 方法将抛出一个包含原始异常的 ExecutionException)。
关于java - java - 如何从java线程抛出检查异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1369204/
我是一名优秀的程序员,十分优秀!