zoukankan      html  css  js  c++  java
  • springmvc17

    下面创建一个GlobalExceptionHandler.java,作为 全局异常处理类


    1、@ControllerAdvice
    控制器增强 (可以理解为:增加控制器功能),放在类上面

    特点:必须让框架知道这个注解所在的包名,需要在springmvc配置文件声明 组件扫描器
    指定 @ControllerAdvice 所在的全局异常处理类包名
    1
    2
    3
    4

    2、@ExceptionHandler
    @ExceptionHandler(异常的class):表示异常的类型,当发生此类型的异常时,由当前方法处理。放在方法上面

    处理异常的方法和控制器方法的定义一样,可以有多个参数,可以有ModelAndView,String,void,对象类型的返回值
    形参:Exception,表示Controller中抛出的异常对象,通过形参可以获取发送的异常信息
    1
    2
    3
    4

    GlobalExceptionHandler.java

    //@ControllerAdvice 增强控制器
    @ControllerAdvice
    public class GlobalExceptionHandler {

    //处理NameException异常
    @ExceptionHandler(value = NameException.class)
    public ModelAndView doNameException(Exception exception){

    ModelAndView mv = new ModelAndView();
    mv.addObject("msg","用户名必须是zs,其他用户不能访问");
    mv.addObject("ex",exception);
    //指定视图
    mv.setViewName("nameError");
    return mv;
    }

    //处理AgeException异常
    @ExceptionHandler(value = AgeException.class)
    public ModelAndView doAgeException(Exception exception){
    ModelAndView mv = new ModelAndView();
    mv.addObject("msg","年龄输入范围有误");
    mv.addObject("ex",exception);
    mv.setViewName("ageError");
    return mv;

    }

    //处理NameException,AgeException以外的,不知类型的异常
    @ExceptionHandler
    public ModelAndView doOtherException(Exception exception){
    ModelAndView mv = new ModelAndView();
    mv.addObject("msg","其他不知类型的异常");
    //指定视图
    mv.setViewName("defaultError");
    return mv;
    }
    }


  • 相关阅读:
    Session Cookie介绍和使用
    Java 设计模式(概述)
    Java-JSON 解析
    Java Fileupload
    docker执行mysql容器修改用户权限
    分布式事务Seata
    idea配置git_2
    idea配置注释
    idea配置git的ssh
    远程阿里云镜像问题
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908582.html
Copyright © 2011-2022 走看看