java - UncaughtExceptionHandler 未调用

标签 java groovy exception uncaughtexceptionhandler

我在 Groovy/Java 中使用 UncaughtExceptionHandler 时遇到问题。

class UncaughtExceptionLogger implements Thread.UncaughtExceptionHandler {

    @Override
    void uncaughtException(Thread t, Throwable e) {
        //TODO do some logging;
        println "test";
    }

主要..groovy

def main(){
    def handler = new UncaughtExceptionLogger();
    Thread.defaultUncaughtExceptionHandler = handler
    String s; 
    s.charAt(10); // causes a NullPointerException but the exception handler is not called 
}

main();

为什么我期望在抛出 NullPointerException 时调用异常处理程序,但这并没有发生。我做错了什么?

最佳答案

似乎你必须用单独的线程生成它:

class UncaughtExceptionLogger implements Thread.UncaughtExceptionHandler {
    @Override
    void uncaughtException(Thread t, Throwable e) {
        //TODO do some logging;
        println "test";
    }
}

def main(){
    Thread.defaultUncaughtExceptionHandler = new UncaughtExceptionLogger()
    String s;
    s.charAt(10); // causes a NullPointerException but the exception handler is not called
}

Thread.start {
  main()
}

关于java - UncaughtExceptionHandler 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52511120/

相关文章:

unit-testing - 扩展Grails模拟以进行单元测试(createCriteria,withNewSession等)

python-3.x - 带有异常处理的 Python 类型

java - Spring,从 Controller 提供静态 View

android - 在 android studio 的 build.gradle 中使用 flavor 维度

java - 如何调整 Swing 进度指示器上的图形?

email - 使用模板发送电子邮件-Grails

java - Jade Agents 中出现 NoClassDefFoundError?

c# - IDictionary w/Null Key - MSDN 拼写错误或其他问题?

java - 模糊 'StringIndexOutOfBoundsException"

java - 如何使用 notifyDataSetChanged()