gpt4 book ai didi

Java EE/Struts 异常处理

转载 作者:行者123 更新时间:2023-11-29 07:58:18 26 4
gpt4 key购买 nike

我已经开始主要在 Struts 和 Servlets 上开发 Java EE 网络应用程序。大多数代码在 Servlet 或 Struts Action 类中都有一个 try catch block 。

每个 servlet 或 Action 都必须有 try catch block 吗?我看到这种代码模板的唯一优点是堆栈跟踪是记录到应用程序指定的日志记录框架,例如 log4j。

如果出现运行时异常,它将改为打印在服务器(Tomcat/Glassfish/Weblogic)日志上。

public class HelloWorldAction extends Action{

public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws Exception {

try {
// do all the processing here
} catch (Exception e) {
// log all exceptions
}
}

}


public class HelloWorldExample extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
try {
// do all the processing here
} catch (Exception e) {
// log all exceptions
}
}
}

最佳答案

  1. 捕获Exception 几乎从来都不是您真正想要做的。希望很明显,总是有一个 try/catch block 不是强制性的——这取决于底层代码在做什么,以及您希望如何处理它可能抛出的任何异常。

  2. 捕获Exception 消除了使用Struts' declarative exception handling 的能力.

我建议反对在 Struts 1 中使用过滤器来处理异常,因为它已经内置了一种机制。如果在框架级别存在异常,它们无论如何都会显示出来,而且它们通常表示开发问题,而不是运行时问题。

我赞同 Andrea 的观点:除非您有充分的理由,否则学习 Struts 1 是没有用的。考虑将 Struts 2 或 Spring MVC 用于“传统”框架开发,或将 Play、Grails、JRuby on Rails 等用于更现代的方法。

关于Java EE/Struts 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com