【发布时间】:2012-09-18 05:06:43
【问题描述】:
问题的简短版本:什么会导致 Scalatra/(Jetty 或 Tomcat)在不设置请求属性“javax.servlet.error.exception”的情况下将执行传递给 ErrorHandler 的 handle?
更长的上下文更多:在我最近加入的一个项目中,ErrorHandlers 的句柄方法具有单独的块,用于处理来自“javax.servlet.error.exception”请求属性和所有其他异常的异常。我们在 Jetty 中运行我们的应用程序,据我了解,Jetty 解开 ServletExceptions 并将它们放在上面的属性中。什么会导致处理非“javax.servlet.error.exception”异常的块被调用呢?或者是多余的,可以去掉?
最初编写代码的人离开了项目。技术栈的其余部分是 Scala 和 Scalatra,如果它有什么不同的话。
Option(request.getAttribute("javax.servlet.error.exception"))
.map {
exception => exception match {
//various exceptions handled
}.getOrElse(handleStatusCode(currentStatus))
编辑:似乎在某些环境中代码在 Tomcat 上运行。
【问题讨论】:
-
请添加您现在拥有的代码。
-
"什么会导致另一个块被调用?"其他区块?
-
更新了问题以提供更多信息
标签: tomcat servlets jetty scalatra