异常控制
		  Author: 江南白衣
		1.业务异常类
		      1.所以业务异常类派生于BusinessException基类。
		      2.原则上,要进行相同处理的异常分为一类,用ERROR_CODE标识不同。
		      3.出错信息统一写在errors.properties,以ERROR_CODE为主键,支持i18N,由基类提供默认的getMessage()函数。
		      参考BussinessException.java和OrderException.java。
		2.Servlet规范里的异常控制
		 2.1按error-code统一定义错误页面
		<error-page>
  <error-code>404</error-code>
  <location>/404.jsp</location>
</error-page>
		<error-page>
  <error-code>500</error-code>
  <location>/error.jsp</location>
</error-page>
		2.2按异常类型定义单独错误页面
		<error-page>
  <exception-type>org.sprngside.bookstore.UserNotFound</exception-type>
  <location>/userNotFound.jsp</location>
</error-page>
		2.3 在JSP里单独定义错误页面
		<@ errorPage="error.jsp">
		3.Spring MVC里的异常控制
		   spring-mvc可在xxx-serverlet.xml里定义default和 按Excepiton类型影射的错误页面, 和Servlet规范比,主要作了Spring特色的JSP路径转向和日志记录.参见bookstore-servlet.xml
		  <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="defaultErrorView" value="/error.jsp"/>
        <property name="exceptionMappings">
            <props>
                <prop key="org.springside.framework.base.BusinessException">/businessError.jsp</prop>
            </props>
        </property>
    </bean>
		4. error.jsp的处理
		         error.jsp会同时处理jsp,servlet,和spring抛过来的异常
		         其中jsp的异常在exception 变量中.
		         servlet的异常在(Exception)request.getAttribute("javax.servlet.error.exception")
		         spring的异常在(Exception) request.getAttribute("exception")
		         使用 (String) request.getAttribute("javax.servlet.error.request_uri")获得 request_uri
         使用 logger.error(exception.getMessage(), exception); 记录整个异常栈
大盘预测
 
国富论
	posted on 2007-09-13 11:23 
华梦行 阅读(1843) 
评论(0)  编辑  收藏  所属分类: 
Spring