gpt4 book ai didi

java - Servlet 中的异常处理

转载 作者:行者123 更新时间:2023-12-01 13:48:38 25 4
gpt4 key购买 nike

我的 JSP 包含多个字段,其中之一是日期,服务器端作为 servlet。我在客户端进行日期检查,并且我想在服务器端进行日期检查。

我有一个从字符串转换日期的方法,该字符串是从请求中获取的。

public static Date convertToDate (String s) throws ParseException {
return formatter.parse(s);
}

我将此方法与 try/catch 一起使用

try {
Date date = Utils.convertToDate(request.getParameter("Date")));
} catch (ParseException e) {
//throw what? new Exception or ParseException or something else
throw new ParseException (request.getParameter("Date")+ "is not a Date");
}

最后,我在 Controller servlet 处处理异常,例如

    try {
//some methods that use method convertToDate
} catch (SomeException e) { //required right exception
response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage());
return;
}

问题。我应该创建新的 ParseException 来添加信息还是创建新的异常(例如 In CorrectDateException)?有没有更合适的异常处理选项?

谢谢。

最佳答案

标准做法是让 Servlet 的 doXxx() 方法(例如 doGet()、doPost() 等)抛出 ServletException 并允许容器捕获并处理它。您可以使用以下标签指定要在 WEB-INF/web.xml 中显示的自定义错误页面:

<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>

如果您最终捕获了无法优雅处理的异常,只需将其包装在 ServletException 中,如下所示:

try {
// code that throws an Exception
} catch (Exception e) {
throw new ServletException(e);
}

关于java - Servlet 中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20140981/

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