编译Java Servlet代码时,出现以下错误...
in javax.servlet.http.HttpServlet; overridden method does not throw org.xml.sax.SAXException
在重写的doGet()函数中,我正在使用JAXP处理XML,这显然需要我处理SAXExceptions。但是,当我将“ SAXExeption”添加到我希望我的doGet函数处理的异常类型列表中时,会出现上述错误。如何获取doGet函数来挂起SAXExcpetions?
预先感谢您的所有帮助!
最佳答案
您不能声明一个覆盖方法,该方法将抛出被覆盖的方法未引发的检查异常。换句话说,由于HttpServlet.doGet()被声明为引发IOException和ServletException,因此您不能在doGet方法的throws子句中使用任何其他异常类型。
但是,您可以将要获取的SAXException打包为ServletException来解决此问题:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
try {
JAXP.possiblyThrowASAXException();
} catch (SAXException e) {
throw new ServletException("JAXP had a parsing failure", e);
}
}