leyou_01_自定义异常处理器
1.自定义异常处理器,当程序发生异常时可以我们可以自己定义返回的,状态码和状态信息
2.当异常发生时调用我们的自定义异常
@RestController
@RequestMapping("item")
public class ItemController {
@Autowired
private ItemService itemService; @PostMapping
public ResponseEntity<Item> saveItem(Item item) {
//检验价格是否为空
if(item.getPrice()==null){
throw new LyException(ExceptionEnum.PRICE_CANNOT_BE_NULL);//自定义异常LyException
// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
item = itemService.saveItem(item);
return ResponseEntity.status(HttpStatus.CREATED).body(item);
}
}
说明:throw new LyException(ExceptionEnum.PRICE_CANNOT_BE_NULL);//自定义异常LyException
LyException()自定义异常 需要传入一个ExceptionEnum对象包含状态码,和错误信息
防止状态码和错误形象的误传,可以以枚举的形式写好
ExceptionEnum.class
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum ExceptionEnum { PRICE_CANNOT_BE_NULL(400, "价格不能为空!"),
;
private int code;
private String msg;
}
SpringMvc拦截到异常
/**
* 通用异常处理器
*/
@ControllerAdvice//默认拦截所有
public class CommonExceptionHandle {
//方法的返回值就是返回页面的东西
//捕获的异常
@ExceptionHandler(LyException.class)
public ResponseEntity<ExceptionResult> handleException(LyException e){
ExceptionEnum em = e.getExceptionEnum();
return ResponseEntity.status(em.getCode()).body(new ExceptionResult(e.getExceptionEnum())); }
}
分装一个异常返回的结果集
/**
* 封装一个异常处理信息的返回结果集
*/
@Data
public class ExceptionResult {
private int status;
private String message;
private Long timestamp; public ExceptionResult(ExceptionEnum em) {
this.status=em.getCode();
this.message=em.getMsg();
this.timestamp=System.currentTimeMillis();
}
}

leyou_01_自定义异常处理器的更多相关文章
- PHP 错误与异常 笔记与总结(16 )自定义异常处理器
可以使用自定义异常处理器来处理所有未捕获的异常(没有用 try/catch 捕获的异常). set_exception_handler():设置一个用户定义的异常处理函数,当一个未捕获的异常发生时所调 ...
- SpringMVC学习(四)———— 数据回显与自定义异常处理器
一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什么是数据回显? 在信息校验时,如果发生校验错误,那么把校验的数据信息,依然停留在当前页面, ...
- springmvc(五) 数据回显与自定义异常处理器
这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单 --WH 一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什 ...
- springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。为了区别不同的异常通常根据异常类型自定义异常类,这里我们创建一个自定义系统异常,如果controller、service、dao抛出此类异常说明是系统预期处理的异常信息。
springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 1.1 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeEx ...
- SpringMVC学习--异常处理器
简介 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeExc ...
- 012医疗项目-模块一:统一异常处理器的设计思路及其实现(涉及到了Springmvc的异常处理流程)
我们上一篇文章是建立了一个自定义的异常类,来代替了原始的Exception类.在Serice层抛出异常,然后要在Action层捕获这个异常,这样的话在每个Action中都要有try{}catch{}代 ...
- spring异常处理器
一.本篇文章旨在讨论异常处理器: 1.因为异常处理器在实战中通常用来处理开发人员自定义的运行时异常,所以如果要了解如何自定义运行时异常,请自行搜索相关资料. 2.本文的demo用IndexOutOfB ...
- SpringMVC异常处理器
本节内容: 异常处理思路 自定义异常类 自定义异常处理器 异常处理器配置 错误页面 异常测试 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异 ...
- SpringMVC由浅入深day02_5数据回显_6异常处理器
5 数据回显 5.1 什么数据回显 表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示. 5.2 pojo数据回显方法 1.springmvc默认对pojo数据进行回显. po ...
随机推荐
- 网站统计中的PV-UV-IP的定义与区别
--------首先来看看ip.uv和pv的定义---------- PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次.UV(独立访客):即Unique Visi ...
- 基于VUE利用pdf.js实现文件流形式的pdf显示
首先推荐大家看一下这个demo vue-pdf.js-demo,这里面包含固定本地地址,远程pdf地址,通过打开文件的方式打开pdf 这儿我们着重介绍一下通过文件流的形式打开pdf.(所谓文件流,就是 ...
- 模拟求root——cf1067B
注意最后一轮要单独求一下 且最后只能有一个root #include <bits/stdc++.h> using namespace std; #define MOD 1000000007 ...
- 手机端判断安卓,iso,微信
var uaContains = function (key) { return navigator.userAgent.toLowerCase().indexOf(key.toLowerCase() ...
- axios解决调用后端接口跨域问题
vue-cli通过是本地代理的方式解决接口跨域问题的.但是在vue-cli的默认项目配置中这个代理是没有配置的,如果现在项目中使用,必须手动配置config/index.js文件 ... proxyT ...
- Linux真好玩阿,不过我家电脑不行,运行不够流畅
不过呢....能编程就行了.... 哎,总说不用QT不用QT,最后还是没办法,用QT了 连个界面都看不到的话,感觉太差了.... 我还不会用QT呢....好好学习....争取像MFC那样习 ...
- mybatis-spring多数据源配置
mybatis-spring多数据源配置 1.注意事项:在MapperScannerConfigurer里配置的时候,每个数据源的mapper接口应放到不同的包中,下面的例子中用粗体标明,另外,对于m ...
- Imageview 图片按比例缩放
只需要在 布局文件中 加入 android:adjustViewBounds="true"这行代码即可 它会让图片进行等比例的拉伸展示
- 关于IOC
1. [调侃]IOC前世今生 http://www.cnblogs.com/showjan/p/3950989.html#!comments 2. 使用ConfigurationManager类 读写 ...
- 使用node.js实现反向代理
一. 反向代理的应用场景 1. 静态资源与动态资源分离 e.g. 图片服务器 2. AJAX跨域访问 3. 搭建统一服务网关接口 二. 使用node.js实现反向代理 1. 安装http-proxy模 ...