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_自定义异常处理器的更多相关文章

  1. PHP 错误与异常 笔记与总结(16 )自定义异常处理器

    可以使用自定义异常处理器来处理所有未捕获的异常(没有用 try/catch 捕获的异常). set_exception_handler():设置一个用户定义的异常处理函数,当一个未捕获的异常发生时所调 ...

  2. SpringMVC学习(四)———— 数据回显与自定义异常处理器

    一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什么是数据回显? 在信息校验时,如果发生校验错误,那么把校验的数据信息,依然停留在当前页面, ...

  3. springmvc(五) 数据回显与自定义异常处理器

    这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单 --WH 一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什 ...

  4. springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。为了区别不同的异常通常根据异常类型自定义异常类,这里我们创建一个自定义系统异常,如果controller、service、dao抛出此类异常说明是系统预期处理的异常信息。

    springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 1.1 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeEx ...

  5. SpringMVC学习--异常处理器

    简介 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeExc ...

  6. 012医疗项目-模块一:统一异常处理器的设计思路及其实现(涉及到了Springmvc的异常处理流程)

    我们上一篇文章是建立了一个自定义的异常类,来代替了原始的Exception类.在Serice层抛出异常,然后要在Action层捕获这个异常,这样的话在每个Action中都要有try{}catch{}代 ...

  7. spring异常处理器

    一.本篇文章旨在讨论异常处理器: 1.因为异常处理器在实战中通常用来处理开发人员自定义的运行时异常,所以如果要了解如何自定义运行时异常,请自行搜索相关资料. 2.本文的demo用IndexOutOfB ...

  8. SpringMVC异常处理器

    本节内容: 异常处理思路 自定义异常类 自定义异常处理器 异常处理器配置 错误页面 异常测试 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异 ...

  9. SpringMVC由浅入深day02_5数据回显_6异常处理器

    5 数据回显 5.1 什么数据回显 表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示. 5.2 pojo数据回显方法 1.springmvc默认对pojo数据进行回显. po ...

随机推荐

  1. python非对称加密模块rsa

    一.代码 # 导入rsa库 import rsa.common class RSA(object): def __init__(self): self.key= rsa.newkeys(256) se ...

  2. VS2010-MFC(对话框:向导对话框的创建及显示)

    转自:http://www.jizhuomi.com/software/166.html 上一节讲了属性页对话框和相关的两个类CPropertyPage类和CPropertySheet类,对使用属性页 ...

  3. 如何将指定文件或文件夹直接提交到svn指定目录?

    如何将指定文件或文件夹直接提交到svn指定目录? 一般我们都是按以下步骤操作的: 1.先将那个目录checkout下来 2.将要添加的文件或者文件夹放到这个目录中 3.右击文件执行svn菜单中的add ...

  4. marquee标签(跑马灯效果)

  5. 建立 CRAMFS 包

    下载 cramfs 工具 从 http://prdownloads.sourceforge.net/cramfs/cramfs­1.1.tar.gz下载源代码包. 把下载包拷贝到 dev_home/t ...

  6. Bootstrap Paginator分页插件(mark)

    Bootstrap Paginator分页插件

  7. 用hexo在本地搭建自己的博客

    参考路径:https://blog.csdn.net/Hoshea_chx/article/details/78826689

  8. Data Dependency

    https://en.wikipedia.org/wiki/Data_dependency (There’s some misleading expression on the flow/data d ...

  9. Python 变量与数据类型

    1.变量命名规则: 变量名只能是字母,数字和下划线的任意组合 变量名第一个字符不能是数字 变量名区分大小写,大小写字母被认为是两个不同的字符 特殊关键字不能命名为变量名 2.数值的运算 print ( ...

  10. linux ssh密钥认证, 免密码登陆

    1. 客户端生成密钥 # mkdir ~/.ssh # chmod ~/.ssh # cd ~/.ssh 生成RSA密钥 # ssh-keygen -t rsa (然后连续三次回车) 2. 把公钥传到 ...