Я хочу выдавать пользовательский exception
, похожий на следующий, из сервлета всякий раз, когда возникает какая-то конкретная проблема.
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>
Теперь проблема возникает, когда я добавляю CustomException
в объявление throws
метода doGet
сервлета. Я получаю следующую ошибку:
Exception CustomException is not compatible with throws clause in HttpServlet.doGet(HttpServletRequest, HttpServletResponse)
Как я могу решить эту проблему? Возможно ли вообще такое настраиваемое исключение и переходить на страницу с ошибкой, когда оно выбрасывается? Или есть другой способ? Заранее спасибо :)