毕业三个月,来到了杭州,也是纪念今天第一天新公司入职,在看到了公司的代码之后,感觉 心里有点开心,也有点紧张,开心是因为这个代码很有学习价值,紧张是因为怕自己能力不足过不了 试用期。
废话不多说,在今天看公司代码的时候,发现了一点点问题,为啥每个controller和service都没有try catch感觉跟我以前写的不太一样啊。
首先他能够作为component自动去扫描实现类,它通常用于定义@ExceptionHandler, @InitBinder 和 @ModelAttribute 适用于所有@RequestMapping方法的方法。
可以看到,这里有我们自定义的几个异常类型,并且会把异常的一个结果放到log日志里面去做一个记录
try catch一般每个方法都得写,代码量很大,但是对于这个RestControllerAdvice来说,来进行一个统一的一个拦截。对应的异常,会对应的进行一个抛出,如果没有找到对应的异常,则会抛出 Exception。
我们看看自定义异常,底部。
我们的业务底层最多的异常基本上就是RuntimeException,所以说我们会根据不同的场景,去自定义一些异常,方便今后去确认,异常出现的位置。
这个方法统一了异常的格式,json,一般而言,前端传过来的格式可以是fromdata 可以是json 一般是某一个固定的格式,而我们后台给前端的内容也应该是一个固定回复格式,使用RestControllerAdvice后,返回的异常的格式是json,是方便做到格式统一的。
(第一次发博客,纪念一下!)