JavaWeb之异常处理

异常处理

当servlet出现异常时,servlet容器使用exception-type元素来找到与抛出的异常类型相匹配的配置

java 复制代码
public class ExceptionHandler extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Throwable throwable = (Throwable) req.getAttribute("javax.servlet.error.exception");
        Integer code = (Integer) req.getAttribute("javax.servlet.error.status_code");
        String message = (String) req.getAttribute("javax.servlet.error.message");
        System.out.println("=========");
        System.out.println(throwable);
        System.out.println("=========");
        System.out.println(code);
        System.out.println("=========");
        System.out.println(message);
    }
}
xml 复制代码
<!-- 配置异常处理的servlet -->
<servlet>
    <servlet-name>ExceptionHandler</servlet-name>
    <servlet-class>com.zhanghe.study.servlet.ExceptionHandler</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ExceptionHandler</servlet-name>
    <url-pattern>/ExceptionHandler</url-pattern>
</servlet-mapping>
<!-- 配置哪些错误码会调用该异常处理类 -->
<error-page>
    <error-code>404</error-code>
    <location>/ExceptionHandler</location>
</error-page>
<!-- 配置哪些异常类型会调用该异常处理类 -->
<error-page>
    <exception-type>java.lang.ArithmeticException</exception-type>
    <location>/ExceptionHandler</location>
</error-page>

如果出现异常,会在请求域中设置相应的属性

可以使用request.getAttribute("")取出

java 复制代码
javax.servlet.error.status_code //错误码,Integer类型
javax.servlet.error.exception_type  // 异常类型,Class类型
javax.servlet.error.message    //异常信息,String类型
javax.servlet.error.request_uri  //出现异常的uri地址,String类型
javax.servlet.error.exception  //异常,Throwable类型
javax.servlet.error.servlet_name  //servlet名称,String类型

zhhll.icu/2021/javawe...

本文由mdnice多平台发布

相关推荐
lybugproducer1 小时前
创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式
java·设计模式·建造者模式·简单工厂模式·工厂方法模式·抽象工厂模式·面向对象
南客先生1 小时前
马架构的Netty、MQTT、CoAP面试之旅
java·mqtt·面试·netty·coap
Minyy111 小时前
SpringBoot程序的创建以及特点,配置文件,LogBack记录日志,配置过滤器、拦截器、全局异常
xml·java·spring boot·后端·spring·mybatis·logback
百锦再1 小时前
Java与Kotlin在Android开发中的全面对比分析
android·java·google·kotlin·app·效率·趋势
武昌库里写JAVA2 小时前
39.剖析无处不在的数据结构
java·vue.js·spring boot·课程设计·宠物管理
Nelson_hehe4 小时前
Java基础第四章、面向对象
java·语法基础·面向对象程序设计
Thomas_YXQ4 小时前
Unity3D Lua集成技术指南
java·开发语言·驱动开发·junit·全文检索·lua·unity3d
ShiinaMashirol5 小时前
代码随想录打卡|Day27(合并区间、单调递增的数字、监控二叉树)
java·算法
东阳马生架构7 小时前
Nacos简介—3.Nacos的配置简介
java
北极的企鹅887 小时前
XML内容解析成实体类
xml·java·开发语言