@ControllerAdvice 是controller的一个辅助类,最常用的就是作为全局异常处理的切面类。约定了几种可行的返回值,可以返回String字符串,也可以返回ModelAndView,也可以返回自定义格式
@ExceptionHandler(RuntimeException.class)表示拦截异常,这里拦截运行时异常。 下面是我项目搭建时使用的,这俩返回json格式;也可以创建一个modeAndView 返回页面,抛出异常的时候,都会转到这个方法中来处理异常
@ControllerAdvice 
public class CustomExceptionHandler {
@ExceptionHandler(RuntimeException.class)
@ResponseBody
public DataResult errorResult(Exception exception) {
CustomException customException=null;
//如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示。
if(exception instanceof CustomException){
customException=(CustomException)exception;
}else{
//如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)。
customException=new CustomException("服务器运行异常,错误信息:"+exception.getMessage());
}
System.err.println(ExceptionUtil.getStackTrace(exception));
//错误信息
String message=customException.getMessage();
//在这里也可以将错误记录在日志中。
return DataResult.build(500, message);
}
}

最新文章

  1. Cocos2d-x 3.0 Json用法 Cocos2d-x xml解析
  2. Scala 深入浅出实战经典 第62讲:Scala中上下文界定内幕中的隐式参数实战详解
  3. 一起聊聊 Swift 3.0
  4. 并查集+bfs+暴力滑窗 Codeforces Round #356 (Div. 2) E
  5. 九思,OA协同九大设计要点
  6. 201521123108 《Java程序设计》第7周学习总结
  7. [HAOI2011]problem a
  8. ES6学习总结一(变量;箭头函数;解构赋值)
  9. MyBatis学习日记(三):戏说MyBatis配置文件
  10. Swift 使用 日常笔记
  11. Python中re的match、search、findall、finditer区别
  12. css特殊样式
  13. nRFgo Studio 和 Nrfjprog 无法找到JLinkARM.dll的解决方法
  14. PHP在Linux下的套件LNMP
  15. oracle 将字符串转化为数值型to_number()
  16. 关系型数据库性能测试参考指标----SQL Server
  17. MacaW Baby Learns Computer
  18. 实习第二天-String对象的不可变性-未解决
  19. XX-net 部署网络
  20. dz数据结构

热门文章

  1. StackTraceElement 源码阅读
  2. Flyway:数据库版本迁移工具的介绍
  3. linux配置信息收集
  4. apicloud 顶部状态栏透明方法
  5. SqlServer:SqlServer(xpath,字段约束,时间查询,数据文件查询及还原,压缩备份)
  6. java:LeakFilling (Linux)
  7. Matlab中的eig函数和Opecv中eigen()函数的区别
  8. kafka服务器批量copy文件脚本
  9. mysql语法难点
  10. Java 中的动态代理