我正在编写一个将使用多线程的应用程序。有一个主线程正在启动另一个线程。我想要完成的是,当启动的线程之一抛出异常时,主线程应该停止启动线程。它看起来或多或少像这样:
class SomeClass {
boolean launchNewThread = true;
public static void main() {
while (launchNewThread) {
try {
AnotherClass.run();
} catch (CrossThreadException e) {
launchNewThread = false;
}
}
}
}
class AnotherClass implements Runnable {
public void run() {
if (a=0) throw new CrossThreadException();
}
}
最佳答案
您应该自己做 - 捕获异常并以某种方式将其传递到启动线程中。
此外,还有Future概念,它已经做到了。您应该将线程作为 future 启动并检查 isDone()
,并从 get()
捕获 ExecutionException
,如果 future 的任务抛出异常。
关于java - 从另一个线程捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8096087/