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


  • 相关阅读:
    C++编译期间字节序判断
    解决:无法使用前导 .. 在顶级文件夹上退出
    手动脱WinUpack 壳实战
    浅谈cocos2dx(18) 中工厂模式
    手把手带你画一个 时尚仪表盘 Android 自己定义View
    Git实战(二)原理
    <html>
    Ubuntu局域网下利用client联网
    Desugar Scala(17) -- Option和for,以及脑子里发生的事情
    通过Canvas及File API缩放并上传图片完整演示样例
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908582.html
Copyright © 2011-2022 走看看