在run()方法的最外层捕获它,然后将Exception放入Runnable的变量中,并让Runnable指示它已完成。
然后,启动您的可运行对象的代码必须检查可运行对象,以查看是否设置了“ Exception”对象,然后重新抛出该对象或对其进行处理。
如果重新抛出,则可能需要将其包装在新的异常中:
throw new Exception(oldException);
这将给您两个堆栈跟踪。
(感谢泰勒L)

在run()方法的最外层捕获它,然后将Exception放入Runnable的变量中,并让Runnable指示它已完成。
然后,启动您的可运行对象的代码必须检查可运行对象,以查看是否设置了“ Exception”对象,然后重新抛出该对象或对其进行处理。
如果重新抛出,则可能需要将其包装在新的异常中:
throw new Exception(oldException);
这将给您两个堆栈跟踪。
(感谢泰勒L)