Java 线程异常终止并出现消息为 null 的异常。

标签 java windows multithreading

我正在尝试使用 Java 的执行器来执行多线程程序。执行时,java 线程异常终止。我通过 try-catch 捕获了异常,但是,异常中没有消息(空)。

失败是随机的,但是我“怀疑”失败是在我在该线程中进行函数调用之后发生的。我尝试将线程堆栈大小增加到 1024/2048 ,但结果保持不变。

有人可以指出这里要采用的调试方法吗?因为,我没有有关异常的信息,所以无法继续处理。

我在 Windows 64 位环境中工作,使用 java 1.6

最佳答案

使用Executors类创建线程池时,使用接受ThreadFactory的方法;示例ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory)。 在 ThreadFactory 的实现中,分配一个 UncaughtExceptionHandler;下面的例子

public final Thread newThread(final Runnable r) {
    Thread newThread = threadFactory.newThread(r); // you can use default thread factory
    newThread.setName("threadName");
    newThread.setDaemon(Boolean.TRUE);
    newThread.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
        @Override
        public void uncaughtException(final Thread t, final Throwable e) {
            // log
        }
    });
    return newThread;
}

关于Java 线程异常终止并出现消息为 null 的异常。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9562595/

相关文章:

java - Hyperledger Fabcar : Error: could not assemble transaction, err 提案响应不成功

c++ - 互斥锁和线程独立性

c# - 非阻塞锁定——概念验证和后续工作

java - 生产者-消费者。消费者等待所有生产者完成,毒丸

java - 类型推断和目标类型

java - 有没有办法稳定java中线程之间的直接通信?

java - java版本不匹配

c# - 缺少 Win32_Service

JAVA_HOME 不被识别为内部/外部命令

windows - 拖放操作调用的 vbscript 中的当前工作目录