如何查找被“忽略”的异常?

时间:2011-06-10 10:50:27

标签: exception scala exception-handling checked-exceptions

无需在throws子句中声明已检查的异常或在scala中的try / catch块中处理它们是我喜欢的功能。但是,当必须处理异常但被忽略时,它可能是一个问题。我正在寻找工具(可能是编译器标志/插件)来查找忽略已检查异常的方法。

2 个答案:

答案 0 :(得分:0)

一个选项是在您的应用程序的高级别捕获异常(顶部将是main - 方法)。

另一种选择是使用UncaughtExceptionHandler(如果你在JVM上):

object MyUncaughtExceptionHandler extends Thread.UncaughtExceptionHandler {
  def uncaughtException(thread: Thread, throwable: Throwable) {
    println("Something bad happened!")
  }
}

val t = new Thread(new Runnable {
  override def run() {
    null.toString
  }
});

t.setUncaughtExceptionHandler(MyUncaughtExceptionHandler)
t.start()

答案 1 :(得分:0)

AFAIK,没有这样的工具,但是我成功使用的一种技术是在IDE(IntelliJ或Eclipse)中为java.lang.Throwable简单地安装一个抛出点断点,这将暂停执行在程序运行时抛出每个 java异常(或错误),然后继续点击“播放”以查看它们(至少在您感兴趣的执行路径上)

干杯......