博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
统一异常处理@ExceptionHandler
阅读量:4704 次
发布时间:2019-06-10

本文共 1469 字,大约阅读时间需要 4 分钟。

异常处理功能中用到的注解是:@ExceptionHandler(异常类型.class). 

这个注解的功能是:自动捕获controller层出现的指定类型异常,并对该异常进行相应的异常处理. 
比如我要在controller层中处理InsertMessageException类型异常,我就可以在controller层的类中定义以下方法:

@ExceptionHandler(InsertMessageException.class)public ModelAndView HandlerInsertMessageException(Exception ex){    ModelAndView modelAndView= new ModelAndException();    //相应的处理方法    //...    //...    //比如说获取异常信息,并添加到modelandview中,跳转到指定异常页面    modelAndView.addObject("exceptionMessage",ex.getMessage());    modelAndView.setViewName("/exceptionPage");    return modelAndView;}

通过这样一个被@ExceptionHandler注解修饰的方法,就能捕获controller层所有抛出的InsertMessageException类型异常,并对异常进行相应的处理

如果想一个方法处理多种类型异常,就需要在@ExceptionHandler的括号中用大括号添加所想要处理的异常类型,用”,”隔开 

例如:@ExceptionHandler({InsertException.class,DeleteException.class})

 

 

===

使用 @ControllerAdvice,不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调

@ControllerAdvice      public class SpringExceptionHandler{        /**          * 全局处理Exception          * 错误的情况下返回500          * @param ex          * @param req          * @return          */          @ExceptionHandler(value = {Exception.class})          public ResponseEntity handleOtherExceptions(final Exception ex, final WebRequest req) {              TResult tResult = new TResult();              tResult.setStatus(CodeType.V_500);              tResult.setErrorMessage(ex.getMessage());              return new ResponseEntity(tResult,HttpStatus.OK);          }            }

 

转载于:https://www.cnblogs.com/xingzc/p/8623490.html

你可能感兴趣的文章
AJAX--Jquery
查看>>
模拟新浪微博随便看看
查看>>
环境搭建
查看>>
解密EXL
查看>>
简易版cnlog
查看>>
erlang程序运行的几种方式
查看>>
堆heap和栈Stack(百科)
查看>>
html5页面实现点击复制功能
查看>>
633. 寻找重复的数
查看>>
沉淀,再出发:python中的pandas包
查看>>
Rule 12: Remove Duplicate Scripts(Chapter 12 of High performance Web Sites)
查看>>
缓存服务的更新策略有哪些?
查看>>
php, nginx高并发优化
查看>>
python内置魔法方法
查看>>
Python自学DAY03
查看>>
兴趣问题清单
查看>>
力扣——N叉树的后序遍历
查看>>
C++ namespace命名空间
查看>>
用Hadoop构建电影推荐系统
查看>>
automake连载---关于两个文件configure.in和Makefile.am的编写
查看>>