有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在不同的线程上重新引发异常?

我想使用两个线程,让我们调用它们预取器客户端预取器的任务是在客户端线程的前面读取一个输入流,并将其放入某个队列中。然后,客户机从队列中检索数据以。。。呃,处理它

现在如果预取器遇到异常,我需要将一个挂起的异常放入队列中,这样客户机到达队列中的该点时会发生异常

问题是,我将在预取器线程上捕获一个(IO)异常,但我需要在客户端线程上抛出一个适当的异常

我的第一个想法是抓住它,然后在另一个线程上重新调用它。但是这显然扰乱了异常的堆栈跟踪

那么,我应该简单地将其包装成一个新的异常吗?这意味着“原因”来自另一个线程,这会导致麻烦吗?或者我必须完全抛弃最初的例外;如果可能的话,我希望在客户端引发的异常中保存尽可能多的信息

什么样的习语可以(并且有效)处理这种情况


共 (1) 个答案

  1. # 1 楼答案

    出于调试目的,最好将原始异常包装为新异常