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多平台发布

相关推荐
懒人Ethan2 分钟前
解决一个C# 在Framework 4.5反序列化的问题
java·前端·c#
2351615 分钟前
【MySQL】MVCC:从核心原理到幻读解决方案
java·数据库·后端·sql·mysql·缓存
扶苏-su20 分钟前
Java---注解
java·注解
MX_93591 小时前
SpringBoot项目优先级以及bean的管理
java·spring boot·后端·spring
Flash Dog1 小时前
【线程池】——实用场景
java
元亓亓亓2 小时前
SSM--day4--SpringMVC(补充)
java·后端·ssm
沐雨橙风ιε2 小时前
Spring Boot整合Apache Shiro权限认证框架(应用篇)
java·spring boot·后端·apache shiro
十重幻想2 小时前
PTA6-5 使用函数求1到10的阶乘和(C)
java·c语言·算法
考虑考虑2 小时前
fastjson调用is方法开头注意
java·后端·java ee
小蒜学长3 小时前
springboot基于javaweb的小零食销售系统的设计与实现(代码+数据库+LW)
java·开发语言·数据库·spring boot·后端