【发布时间】:2013-09-18 18:55:14
【问题描述】:
似乎是一个相当直接的问题,但我想在触发 Scalatra 中的顶级错误处理程序时记录堆栈跟踪。我故意在我的一种方法中抛出异常,方法是做一些微不足道的事情:
throw new IllegalArgumentException
在错误处理程序中,代码如下所示:
error {
case e => {
val logger = LoggerFactory.getLogger(getClass)
logger.info("an exception occurred: " + e.getStackTrace())
logger.info("the request body is: " + request)
NotFound("An error occurred, please contact support")
}
}
错误处理程序本身是 Scalatra 特定的,但我很确定我正在寻找的答案可以使用任何普通的 Scala 技术来解决。此时我可以做些什么来获取堆栈跟踪吗?我不确定请求是否与错误处理程序在同一个线程上,否则那里可能会有一些答案。 e.getStackTrace() 给我[Ljava.lang.StackTraceElement;@1f6b6954
在此处打印堆栈跟踪以便我可以记录并查看它以修复我糟糕代码中的错误的最佳方法是什么?
【问题讨论】:
标签: scala exception-handling scalatra