对于servlet生命周期的东西,你们有什么建议来响应异常...
例如,
public class Foo implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
try {
// something nasty
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void contextDestroyed(ServletContextEvent event) {
try {
// something nasty
} catch (Exception e) {
throw new RuntimeException(e);
}
}
我不完全确定什么将处理上面的运行时异常。我的想法是,如果在这里抛出异常,它们的严重程度足以完全破坏系统,因此(未处理的)运行时异常可能是可以的。
我想我是在问是什么处理来自servlet上下文侦听器的未检查异常?
发布于 2010-10-27 21:23:09
捕获异常时,可能需要考虑设置ServletContext
属性以指示遇到错误。这样,如果容器没有禁用应用程序,您可以让Filter
和/或Servlet
检查ServletContext
属性,并采取适当的操作,如显示错误页面。
发布于 2010-10-27 16:55:17
看起来ServletContentListener并不是为了能够控制生命周期而设计的(否则它将被允许抛出ServletException)。
因此,我不会依赖RuntimeException来做任何有用的事情。查看some other threads here,它似乎在某些应用程序服务器上被记录和忽略。
如果在代码失败时应用程序不启动是很重要的,那么您应该将该代码移到Servlet的初始化部分。
发布于 2010-10-27 16:43:05
这是一个很好的语气,显示一些页面,如“技术错误,对不起”,而不是显示堆栈跟踪与错误消息。只需将其记录下来,并将用户转发到错误页面。
https://stackoverflow.com/questions/4031275
复制相似问题