springboot 中@RestControllerAdvice

毕业三个月,来到了杭州,也是纪念今天第一天新公司入职,在看到了公司的代码之后,感觉 心里有点开心,也有点紧张,开心是因为这个代码很有学习价值,紧张是因为怕自己能力不足过不了 试用期。
废话不多说,在今天看公司代码的时候,发现了一点点问题,为啥每个controller和service都没有try catch感觉跟我以前写的不太一样啊。
首先他能够作为component自动去扫描实现类,它通常用于定义@ExceptionHandler, @InitBinder 和 @ModelAttribute 适用于所有@RequestMapping方法的方法
可以看到,这里有我们自定义的几个异常类型,并且会把异常的一个结果放到log日志里面去做一个记录
可以看到,这里有我们自定义的几个异常类型,并且会把异常的一个结果放到log日志里面去做一个记录

try catch一般每个方法都得写,代码量很大,但是对于这个RestControllerAdvice来说,来进行一个统一的一个拦截。对应的异常,会对应的进行一个抛出,如果没有找到对应的异常,则会抛出 Exception。

我们看看自定义异常,底部。
XbootException
LimitException
我们的业务底层最多的异常基本上就是RuntimeException,所以说我们会根据不同的场景,去自定义一些异常,方便今后去确认,异常出现的位置。

这个方法统一了异常的格式,json,一般而言,前端传过来的格式可以是fromdata 可以是json 一般是某一个固定的格式,而我们后台给前端的内容也应该是一个固定回复格式,使用RestControllerAdvice后,返回的异常的格式是json,是方便做到格式统一的。
(第一次发博客,纪念一下!)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@RestControllerAdvice 是一个用于全局异常处理和统一返回结果的注解。在 Spring Boot 项目,我们可以通过 @RestControllerAdvice 注解来定义一个全局的异常处理类。 使用 @RestControllerAdvice 注解的类可以包含以下几个注解: 1. @ExceptionHandler:用于处理特定异常类型的方法。 2. @InitBinder:用于在控制器初始化 WebDataBinder 的方法。 3. @ModelAttribute:将键值对添加到全局的 Model 。 4. @ResponseBody:将方法的返回值作为响应体。 当项目发生异常时,@RestControllerAdvice 注解的类会捕获异常并根据具体的异常类型执行相应的处理方法。这样可以实现全局的异常处理,避免在每个接口都写异常处理逻辑。 下面是一个简单的示例代码: ```java @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public ResponseEntity<String> handleException(Exception e) { // 异常处理逻辑 return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); } } ``` 在上面的代码使用 @ExceptionHandler 注解来定义了一个处理 Exception 类型异常的方法。当项目出现 Exception 类型的异常时,会执行该方法,并返回一个带有异常信息的 ResponseEntity 对象。 注意:@RestControllerAdvice 注解只会扫描被 @Controller 或 @RestController 注解的类。因此,确保你的全局异常处理类被正确扫描并起作用。 希望能帮到你!如有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值