java - 从另一个线程捕获异常?

标签 java multithreading exception

我正在编写一个将使用多线程的应用程序。有一个主线程正在启​​动另一个线程。我想要完成的是,当启动的线程之一抛出异常时,主线程应该停止启动线程。它看起来或多或少像这样:

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/

相关文章:

c++ - google/dense_hash_map的线程安全

c - 关于用多线程实现 sleep 理发师时的同步

sql-server - SQL事务死锁

Java监控: JMX vs. Servlets

java - 我的世界锻造 1.14.4 : missing library error (snapshot) in eclipse

java - 多线程聊天服务器

java - Android Maven 插件执行测试时运行时异常

java - 在 Java 中,使用 throws Exception 而不是抛出多个特定的异常是好的做法吗?

java - 无法从 jenkins 作为后台进程运行 nohup 命令

java - 谷歌登录已签名的 apk 无法正常工作