Как найти исключения, которые были "проигнорированы"? - PullRequest
6 голосов
/ 10 июня 2011

Нет необходимости объявлять отмеченные исключения в предложении throws или обрабатывать их в блоке try / catch в scala - это функция, которая мне нравится Но это может быть проблемой, когда исключение должно быть обработано, но было проигнорировано. Я ищу инструменты (возможно, флаг / плагин компилятора), чтобы найти методы, которые игнорировали проверенные исключения.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2011

AFAIK, таких инструментов нет, однако одна из техник, которые я успешно использовал, заключается в простой установке точки прерывания в точке выброса в вашей IDE (IntelliJ или Eclipse) для java.lang.Throwable, которая приостановит выполнение точка выброса каждого исключения java (или ошибки) при запуске программы, а затем продолжать нажимать кнопку «play», чтобы увидеть их все (по крайней мере, на пути выполнения, который вас интересует)

Ура ...

0 голосов
/ 10 июня 2011

Один из вариантов - поймать исключение на очень высоком уровне вашего приложения (верхний - это 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()
...