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;
    }
    }


  • 相关阅读:
    数据库知识扩展
    数据库遇到的问题——mysql在线修改表结构大数据表的风险与解决办法归纳
    数据库遇到的问题——事务操作时中断导致锁表
    java中常见的内存泄露的例子
    数据库设计中常见表结构分析
    索引失效的7种情况
    DWZ 自定义异常及后台校验2-a链接弹出框
    DWZ 自定义异常及后台校验
    Excl中的数据转换成SQL脚本(含日期写法)
    SpringAop (二)
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908582.html
Copyright © 2011-2022 走看看