SpringMVC中统一异常处理的学习

对于产生的异常信息,我们不能直接返回给用户,这样体验感很差,所以我们一般都返回一个异常显示页面,告诉用户出现了什么异常信息,比如404,500等错误.

一.自定义异常处理

  • 概述:我们可以通过实现HandlerExceptionResolver接口来自定义处理异常信息
  • 第一步:书写Myexception类实现HandlerExceptionResolver

在这里插入图片描述

package com.offcn.exception;

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Myexception implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest,
                                         HttpServletResponse httpServletResponse,
                                         Object o,
                                         Exception e) {
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("error");
        String meg=e.getMessage();
        modelAndView.addObject("message",meg);
        return modelAndView;
    }
}
  • 第二步:直接在容器中注入异常处理对象
<bean id="myexception" class="com.offcn.exception.Myexception"></bean>

二.使用SpringMVC内置的异常处理器处理异常

  • 直接在容器中配置这个内置处理器就ok了
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.Exception">error</prop>
            </props>
        </property>
    </bean>

三.使用局部(不同的Controller)异常处理

  • 概述:我们不希望所有的控制器出现异常的信息处理都使用一样的,我们可以针对不同的控制器中出现的异常单独处理,比如vip用户和普通用户我们要不同的效果
  • 实现方法:在控制器中定义一个方法,使用注解来实现该方法变成局部处理异常方法
  • 注意点:
1使用注解:@ExceptionHandler
2参数列表必须为(HttpServletRequest request,Exception e)
  • 代码实现:
 @ExceptionHandler
    public String handlerException(HttpServletRequest request,Exception e){
        return "error";//直接返回异常页面
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值