码迷,mamicode.com
首页 > 编程语言 > 详细

springmvc17

时间:2021-06-25 17:02:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:控制器   err   多个参数   str   发送   用户   class   springmvc   范围   

下面创建一个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;
}
}


springmvc17

标签:控制器   err   多个参数   str   发送   用户   class   springmvc   范围   

原文地址:https://www.cnblogs.com/huaobin/p/14908582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!