servlet中的异常处理

时间:2013-11-22 09:11:32

标签: java jsp exception servlets

我有几个字段的JSP,其中一个是Date,服务器端是servlet。 我在客户端进行日期检查,我想在服务器端进行日期检查。

我有一个方法可以从字符串转换Date,这是从请求获取的。

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");
}

最后,我在控制器servlet处理异常,如

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

问题。我应该创建新的ParseException来添加信息或创建像IncorrectDateException这样的新异常吗?是否有更合适的选项来处理异常?

感谢。

1 个答案:

答案 0 :(得分:1)

要做的标准事情是使用Servlet的doXxx()方法(例如.doGet(),doPost()等)抛出ServletException并允许容器捕获并处理它。您可以使用标记

指定要在WEB-INF / web.xml中显示的自定义错误页面
<error-page>
    <error-code>500</error-code>
    <location>/error.jsp</location>
</error-page>

如果您最终捕获到Exception,则无法优雅地处理,只需将其包装在ServletException中,如下所示:

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