开发过程中由于出现异常时想要返返回指定类型的json串,springboot自带的异常处理无法满足需求,自己封装异常处理类进行指定的异常处理。


import java.util.HashMap;
import java.util.Map;import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
/**
*统一处理拦截
*
*/
@ControllerAdvice//标识为controller异常处理类
public class ControllerExceptionHandler {@ResponseBody@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)//状态码500@ExceptionHandler(UserException.class)//指定异常public Map<String ,Object> UserNotExitException(UserException ue){Map<String,Object> map = new HashMap<String,Object>();map.put("id", ue.getId());map.put("message", ue.getMessage());return map;}
}

自定义异常处理类

//自定义异常类
public class UserException extends RuntimeException{private static final long serialVersionUID = 1L;private String id;private String message;public UserException(String id, String message) {super("this is user exception");this.id = id;this.message = message;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}

运行时异常抛出

@JsonView(User.UserDetailView.class)//json视图处理器,博主下一篇文章解释,可注释掉//@RequestMapping(value="/user/{id:\\d+}",method = RequestMethod.GET)//限制id只能为数字@GetMapping("/{id:\\d+}")//正则表达式,限制传入内容只能为idpublic User  getInfo(@PathVariable(name="id") String thisId){//获取url中的指定idUser u = new User();u.setUsername("1");u.setPassword("11");throw new UserException("1","我这出问题了");//抛出指定异常//return u;}

总结一下restful风格开发情况下,springboot2异常抛出时捕获处理顺序

controller  -- aspec  --- interceptor---filter

Springboot2 自定义异常处理相关推荐

  1. Spring Security 实战干货:自定义异常处理

    Spring Security 实战干货:自定义异常处理 转自:https://www.cnblogs.com/felordcn/p/12142514.html 文章目录 1. 前言 2. Sprin ...

  2. springboot自定义异常处理

    springboot自定义异常处理 参考文章: (1)springboot自定义异常处理 (2)https://www.cnblogs.com/SimpleWu/p/10044468.html 备忘一 ...

  3. springboot2自定义HttpTraceRepository

    序 本文主要研究下springboot2自定义HttpTraceRepository Configuration @Configuration @ConditionalOnWebApplication ...

  4. 玩转springboot:自定义异常处理和深入异常处理原理

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...

  5. Web框架——Flask系列之abort函数与自定义异常处理(十三)

    一.abort函数 使用abort函数可以立即终止视图函数的执行,并可以返回给前端特定的信息 传递状态码信息,必须是标准的http状态码 abort(403) 传递响应体信息 resp = Respo ...

  6. ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)

    项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...

  7. ASP.NET AJAX入门系列(8):自定义异常处理

    在UpdatePanel控件异步更新时,如果有错误发生,默认情况下会弹出一个Alert对话框显示出错误信息,这对用户来说是不友好的,本文看一下如何在服务端和客户端脚本中自定义异常处理,翻译自官方文档. ...

  8. C++自定义异常处理

    C++自定义异常处理 参考文章: (1)C++自定义异常处理 (2)https://www.cnblogs.com/qinwanlin/p/5486061.html (3)https://www.co ...

  9. tp5 ThinkPHP5 自定义异常处理类

    tp5 ThinkPHP5 自定义异常处理类 参考文章: (1)tp5 ThinkPHP5 自定义异常处理类 (2)https://www.cnblogs.com/pyspang/p/11095414 ...

最新文章

  1. VC++技术内幕(三)
  2. ios单应用模式_如何为iOS 13暗模式设置应用
  3. 带你感受小而美的看板协作工具Leangoo的魅力
  4. Servlet 第六课: Session的使用
  5. 同步 异步 阻塞 非阻塞概念区分
  6. 《智能路由器开发指南》——2.3 使用VirtualBox部署
  7. 预防鼻炎以及空气污染对策
  8. ASP.NET 2.0 中的新增服务、控件与功能概述(四)
  9. java jar killed_容器中Java 程序OOMKilled原因浅析
  10. leetcode 349. 两个数组的交集 思考分析
  11. c语言斐波那契数列_剑指Offer-10-I.斐波那契数列
  12. LeetCode 523. Continuous Subarray Sum
  13. flowable工作流 流程变量_互联网架构设计漫谈 (6)-90%的架构师都知道的工作流原理...
  14. JavaScript 基础--- (正则表达式 / 事件监听与绑定)
  15. Codeforces Round #750 (Div. 2)
  16. MongoDB Database Profiling
  17. Java read failed_android-获取java.io.IOException:读取失败,套接...
  18. 今日芯声 | 连发五个“感恩”,余承东庆祝与鸿蒙OS同一天生日
  19. 辐射校正(传感器定标+大气校正)
  20. 黑白双色背景图java_黄色背景黑白双色简洁ppt图表

热门文章

  1. 课程作业01的设计思想、程序流程图、源程序代码和结果截图整理
  2. android于src和background差额
  3. 自己动手实现权限控制(数据库表的设计)
  4. 样式表放在顶部的好处
  5. Tips--解决安装完Anaconda没有快捷方式的问题
  6. 7-201 列出连通集 (25 分)
  7. 7-293 鸡兔同笼 (10 分)
  8. django使用iframe
  9. 登录页面(通过数据库查询密码是否正确)
  10. 区块链基础学习(二)