java - 如何在 Java 中诊断 "Unhandled Exceptions"?

标签 java unhandled-exception

在 Java 程序中,我当前在程序中的某个点收到“未处理的异常”,但我似乎无法确定生成此异常的位置。

调试代码也很困难,因为程序包含处理发送和接收的无线数据字节的流。我似乎无法用调试器来模拟它。

我应该采取什么策略来定位异常?

最佳答案

实现Thread.UncaughtExceptionHandler接口(interface)并使用setDefaultUncaughtExceptionHandler()来设置它。

示例程序作为礼貌。如果您使用多个线程,您也可以在您怀疑是罪魁祸首的线程上设置处理程序。

public class Test {
  public static void main(String args[]) {
      new Test();
  }
  public Test() {
      Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
      // or if a default handler is set you can also use setUncaughtExceptionHandler
      // check the javadocs for the specifics
      throw new RuntimeException ("You can't get me or can you?");
  }
  class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
      public void uncaughtException(Thread t, Throwable e) {
          System.err.println ("Uncaught exception by " + t + " caught:");
          e.printStackTrace();
      }
  }
}

关于java - 如何在 Java 中诊断 "Unhandled Exceptions"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739772/

相关文章:

java - 评估 JAXB

c# - 使用 Polly 时 VS 调试器中报告的异常用户未处理

wpf - 全局异常处理程序不会捕获某些异常(例如 StackoverflowException)

c++ - 未处理的异常错误

c++ - 在 visual studio 2010 中实现安装项目后使用 new 时出现 unhandlex 异常

java - 我们如何在 Maven 中为主要和测试 java 代码集拥有不同的 PMD 规则集?

java - 如何更改长字符串中的 1 个单词?

java - 无法反序列化来自 Flurry API 的 json 响应

java - 使用 KafkaProperties 配置多个 kafka 主题名称的最佳方法是什么

c++ - 未处理的异常编译错误