6

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

4

2 回答 2

0

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

干杯...

于 2011-12-11T11:31:28.733 回答
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()
于 2011-06-10T11:16:17.957 回答