如何打印一些Scala程序抛出的所有异常?

时间:2016-01-28 12:05:43

标签: scala exception

Scala Exceptions是存储在某些全局异常表中还是存储在类似的结构中,如果是这样,除了catch之外还有什么方法可以访问它吗?我的意思是如果我需要打印一些Scala程序抛出的所有异常是什么最好的方法吗?

由于

1 个答案:

答案 0 :(得分:1)

据我所知,没有存储例外的表格。您可以为给定的线程添加未处理的异常捕获器,就像在Java中一样:

  import java.lang.Thread.UncaughtExceptionHandler
  import java.security.InvalidKeyException

  Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler {
    override def uncaughtException(t: Thread, e: Throwable): Unit = {
      println(e)
      println(e.getStackTrace.mkString("\r\n"))
    }
  })

但是你的异常应该在线程中未处理,以便工作。如果发生了一个未处理的异常 - 没有其他异常可以抛出 - 所以我不确定你的意思是all exceptions