浏览 2302 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-17
第一步: 自定义了异常体系为: -com.swc.se.exception +SeDAOException(继承自SeException) +SeException(继承自RuntimeException) SeException: public class SeException extends RuntimeException { public SeException(String message ) { super(message); } } SeDAOException: public class SeDAOException extends SeException { public SeDAOException(String message) { super(message); } } 第二步: 错误页面为: error.jsp <%@ page contentType="text/html;charset=gb2312" %> <%@ page isErrorPage="true" %> <html> <head> <title>错误信息!</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"> </head> <body> <center> <h1>错误信息!</h1> <br> <table width="500"> <% if(exception!=null) { %> <tr> <td colspan="2" class="warnning"> <%=exception.getMessage()%> </td> </tr> <% } out.println("exception为null"); %> <tr> <td align="center" colspan="2"> <p> <input type="button" name="register" value="返回" onclick="javascript:history.go(-1);"> </td> </tr> <tr> <td align="right" colspan="2"> <img height="200" src="images/welcome.gif"> </td> </tr> </table> </center> </body> </html> 第三步: 修改web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <description> </description> <display-name>login</display-name> <servlet-name>ConsumerLoginServlet</servlet-name> <servlet-class> com.swc.se.controller.ConsumerLoginServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>ConsumerLoginServlet</servlet-name> <url-pattern>/ConsumerLoginServlet</url-pattern> </servlet-mapping> ... <error-page> <exception-type> com.swc.se.exception.SeDAOException </exception-type> <location>/error.jsp</location> </error-page> </web-app> 最后一步: Model层,代码中抛出由DAO层引起的自定义异常: ... public void login(Consumer consumer){ IConsumerDAO consumerDAO=(IConsumerDAO)DaoFactory.getDao("consumerDAO"); if(!consumerDAO.verify(consumer)){ throw new SeDAOException("您输入的用户名跟密码不正确,请重新输入!"); } } ... 但是这时候不知道为什么,error.jsp中的jsp隐含对象exception确实没有接收到Model层抛出的自定义异常: if(!consumerDAO.verify(consumer)){ throw new SeDAOException("您输入的用户名跟密码不正确,请重新输入!"); } 这条语句已经执行了,但是 if(exception!=null) { %> <tr> <td colspan="2" class="warnning"> <%=exception.getMessage()%> </td> </tr> <% } 并没有进入到if(exception!=null)里面,所以exception为空的。。。。 目前还没有解决这个问题,实在是愁人啊。。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-17
问题解决了!
原来是这样的: 通过eclipse控制台启动tomcat时的信息: ...... 2006-3-17 21:09:10 org.apache.catalina.core.ApplicationContext log 信息: Exception initializing TldLocationsCache: XML parsing error on file /WEB-INF/web.xml: (line 3, col 9): Document is invalid: no grammar found. ...... 后来研究上面的异常信息,其实并不是因为web.xml的错误,而是因为与其同一个目录的lib(/ServiceEngine/WEB-INF/lib)里的部分jar包(比如说naming-factory.jar,naming-resources.jar等)与tomcat_home下的common/lib/下的jar包部分相同从而冲突了,导致了自定义异常体系不好使,这是个人的理解,不知道真正的原因是否是这样。。。 |
|
返回顶楼 | |