自定义异常及堆栈结构

    自定义异常:
    
    一、代码中直接throw异常,在页面中将异常信息显示
        1、自己定义异常情况
             步骤1、
                    if (findItemById(conn, item.getItemNo()) != null) {
                         throw new ApplicationException("物料代码已经存在,代码=" + item.getItemNo()  + "");
                     }  
              步骤2、
                    在最后面的处理步骤中通过catch中将异常信息放入request中
             步骤3、
                    在jsp页面中将异常信息显示
                
         2、根据数据库的异常代码来定义异常情况
                 if (e.getErrorCode() == 1) {
                    throw new ApplicationException("物料代码已经存在,代码【" + item.getItemNo()  + "】");
                }
           
     二、创建异常类:在java中throw该异常知道最后catch该异常时放入request中,最后在jsp显示
             步骤1、创建异常类继承RuntimeException,自动生成继承自父类的所有构造方法。(可以看drp示例里的ApplicationException)
             步骤2、在java中根据情况引用该异常类
            
    三、声明式异常:创建异常类,在java中throw该异常,创建错误页面,配置web.xml
            步骤1、创建异常类继承RuntimeException,自动生成继承自父类的所有构造方法。
            步骤2、在java中throw该异常
            步骤3、创建错误页面。在页面中加入<%@ page isErrorPage="true" %>信息,并在body中通过<%=exception.getMessage()%>来显示异常
            步骤4、web.xml中配置:
                         <error-page>
                                <exception-type>com.bjpowernode.drp.util.ApplicationException</exception-type>
                                <location>/error.jsp</location>
                         </error-page>
    
    四、处理404及500异常:
            步骤1、创建异常类继承RuntimeException,自动生成继承自父类的所有构造方法。
            步骤2、在java中throw该异常
            步骤3、创建错误中转页面:tomcat等服务器会自动把错误码保存在request对象中
                <%
                    Integer errorCode = (Integer)request.getAttribute("javax.servlet.error.status_code");
                    if (errorCode == 404) {
                        response.sendRedirect(request.getContextPath() + "/404.jsp");
                    }else if (errorCode == 500) {
                        response.sendRedirect(request.getContextPath() + "/500.jsp");
                    }
                %>
            步骤4、创建404和500错误页面
            
            
            
         了解栈结构:
        最上面的栈信息就是错误出现的初始地方
        下面的信息是对上面属性或方法的引用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值