gpt4 book ai didi

java - 在 servlet 中抛出自定义异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:20 25 4
gpt4 key购买 nike

每当出现某些特定问题时,我想从 servlet 中抛出一个自定义的异常,有点像下面这样。

public class CustomException extends Throwable {

private String[] errArray;

public CustomException(String[] errArray){
this.errArray = errArray;
}

public String[] getErrors(){
return errArray;
}

}

然后当抛出此异常时,我想将用户重定向到特定的错误页面。

<error-page>
<exception-type>com.example.CustomException</exception-type>
<location>/WEB-INF/jsp/errorPage.jsp</location>
</error-page>

这里是错误页面,我想使用异常隐式对象。

<%@ page isErrorPage="true" %>
<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>

<my:head title="Error"></my:head>
<body>
<% String errArray = exception.getErrors(); %>
</body>
</html>

现在,当我在 servlet 的 doGet 方法的 throws 声明中添加 CustomException 时,问题就出现了。我收到以下错误:

Exception CustomException is not compatible with throws clause in HttpServlet.doGet(HttpServletRequest, HttpServletResponse)

现在我该如何克服这个问题?甚至可以像这样自定义异常并在抛出时转发到错误页面吗?或者还有其他办法吗?提前致谢:)

最佳答案

HttpServletdoGet 抛出 ServletException 如下声明:

    protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,
java.io.IOException

请使您的CustomException扩展ServletException以符合方法规范。

编辑:在您的 error.jsp 中,获取错误:

<% String[] errArray = null; 
if(exception instanceof CustomException) {
errArray = (CustomException)exception.getErrors();
}
%>

请注意:它返回 String[]

关于java - 在 servlet 中抛出自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13282753/

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