本节讨论如何使用Spring的异常处理机制,当我们程序出现错误时,以相同的一种格式,把错误信息返回给客户端

1、创建一些自定义异常

public class TipsException extends Exception {private static final long serialVersionUID = 2784987176856514682L;public TipsException(String string) {super(string);}}

2、使用@RestControllerAdvice创建一个异常处理的RESTful控制器,当其他控制器抛出异常时,会被这个控制器截获并处理

@RestControllerAdvice
public class ExceptionController {@ExceptionHandler(TipsException.class)@ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)public AppResult tips(TipsException e) {return new AppResult().error(e.getMessage());}@ExceptionHandler()@ResponseStatus(HttpStatus.ALREADY_REPORTED)public AppResult spittleNotFound(Exception e) {return new AppResult().error("内部错误!请联系系统管理员!" + e.getClass().getTypeName() + e.getMessage());}}

这里的异常处理会返回一个和普通控制器一样的AppResult对象,保证任何时候返回给客户端的值都是统一格式的

3、运行测试

转载于:https://www.cnblogs.com/LiveYourLife/p/9173166.html

【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】04、统一处理异常...相关推荐

  1. 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】05、Shiro集成

    1.POM文件中加入Shiro和fastJSON依赖 <dependency><groupId>org.apache.shiro</groupId><arti ...

  2. api分层内部外部 spring_java - Spring boot restful API分层架构验证 - SO中文参考 - www.soinside.com...

    [今天,我与我们的一位团队成员就Controller和Service层中的RESTful API输入的验证进行了大讨论,我觉得这是提出更大论点的糟糕日子.因此,我们有一个具有分层体系结构的spring ...

  3. Spring boot restful api 方法参数 BindException 异常处理

    BindException位于org.springframework.validation中 客户端 发起接口请求,Controller在接收的参数在进行绑定注解校验规则时出现异常,会抛出  Bind ...

  4. 构建Spring Boot RESTful服务+ Spring Boot执行器

    总览 什么是REST? REST(代表状态转移)是Web构建的体系结构样式,已成为用于Web应用程序的标准软件设计模式 . 代表性国家转移一词最早由REST的发起人,HTTP规范的主要作者之一Roy ...

  5. Spring Boot Restful框架搭建和使用【持续更新中】

    2019独角兽企业重金招聘Python工程师标准>>> 1 Spring Boot Restful框架搭建 项目源码地址 2 SpringBoot框架使用技巧记录 2.1 pagea ...

  6. Myeclipse下使用Maven搭建spring boot项目(第二篇)

    现在需要搭建spring boot框架,并实现一个HelloWorld的项目,让程序真正运行起来. 一.在pom.xml中引入spring-boot-start-parent,spring官方的叫st ...

  7. Maven 搭建spring boot多模块项目(附源码)

    Maven 搭建spring boot多模块项目 备注:所有项目都在idea中创建 1.idea创建maven项目 1-1: 删除src,target目录,只保留pom.xml 1-2: 根目录pom ...

  8. 搭建spring boot环境并测试一个controller

    Idea搭建spring boot环境 一.新建项目 二.起步依赖 三.编写SpringBoot引导类 四.编写Controller 五.热部署 一.新建项目 1.新建project 2.选择Spri ...

  9. Spring Boot 2.0:Docker Compose + Spring Boot + Nginx + Mysql 实践

    Spring Boot 2.0:Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中最常 ...

最新文章

  1. 利用FRIDA攻击Android应用程序(一)
  2. 趣学python3(26)-pygame-蛇身运动
  3. 利用python去除红章
  4. 《Inside XAML》翻译半成品
  5. Java字符串与包装类
  6. C#事件机制(记住流程)
  7. 进程间的通信——无名管道
  8. oracle升级后报 06502,Oracle数据库升级后报ORA-00704和ORA-39700错误
  9. golang自带的rpc 服务端
  10. JS中return SomeFunction和不加return的区别
  11. matlab下载(Mac+Linux+Windows)
  12. win10新建虚拟机网络配置未连接服务器,win10虚拟机无法连接网络的解决方法
  13. 吴伯凡-认知方法论-认知是一个长期修炼的过程
  14. 【面经】2018金山WPS前端笔试题 面试题
  15. Learning Image Conditioned Label Space for Multilabel Classification
  16. dpdk mellanox网卡 多线程hang住的问题
  17. 《爬虫爬 wallhaven.cc壁纸》
  18. 重温:求知若饥,虚心若愚
  19. 图像处理之Bolb分析(一)
  20. Webface--(CASIA-WebFace)

热门文章

  1. 负边距在布局中的使用
  2. mybatis11--多对多关联查询
  3. linux进程通讯-纯文本文件1
  4. java 多线程取一条记录_java多线程从队列中取出数据执行
  5. extjs 按钮小箭头展开panel_汽车按钮都是英文看不懂?视频教你认清车内所有按钮,看完秒懂...
  6. 霍夫直线检测python_python+opencv实现霍夫变换检测直线
  7. 统计词语出现次数python_Python实战教程:如何统计序列中元素的出现频度
  8. nvsip能用别的软件吗_为什么很多企业转向了 Golang? Java, Python, C#没落了吗?
  9. java语法糖效率高吗_打包 Java将持续向“高糖”方向发展,你真的了解Java语法糖吗? _好机友...
  10. fastdfs删除过期文件_Spring Boot 系列:使用 Spring Boot 集成 FastDFS