SpringBoot:如何优雅地进行参数传递、响应数据封装(1)

本文介绍了如何在SpringBoot中优雅地处理参数传递和响应数据封装,包括自定义返回结构体ResponseInfo,以及使用@RestControllerAdvice进行全局异常处理。详细展示了如何处理参数格式异常、权限不足、参数缺失等常见异常,并提供了自定义业务异常BusinessErrorException的示例,以增强系统的异常反馈和用户体验。
摘要由CSDN通过智能技术生成

/**

  • @author guozhengMu

  • @version 1.0

  • @date 2019/8/21 14:55

  • @description

  • @modify

*/

@RestController

@RequestMapping(value = “/test”, method = RequestMethod.GET)

public class TestController {

@RequestMapping(“/json”)

public ResponseInfo test() {

try {

// 模拟异常业务代码

int num = 1 / 0;

return new ResponseInfo(“测试数据”);

} catch (Exception e) {

return new ResponseInfo(500, “系统异常,请联系管理员!”);

}

}

}

如上,接口的返回数据处理便优雅了许多。针对上面接口做个测试,启动项目,通过浏览器访问:localhost:8096/test/json,得到响应结果:

{“code”:500,“msg”:“系统异常,请联系管理员!”,“data”:null}

3 全局异常处理

========

3.1 系统定义异常处理

============

新建一个 ExceptionHandlerAdvice 全局异常处理类,然后加上 @RestControllerAdvice 注解即可拦截项目中抛出的异常,如下代码中包含了几个异常处理,如参数格式异常、参数缺失、系统异常等,见下例:

@RestControllerAdvice

@Slf4j

public class ExceptionHandlerAdvice {

// 参数格式异常处理

@ExceptionHandler({IllegalArgumentException.class})

@ResponseStatus(HttpStatus.BAD_REQUEST)

public ResponseInfo badRequestException(IllegalArgumentException exception) {

log.error(“参数格式不合法:” + e.getMessage());

return new ResponseInfo(HttpStatus.BAD_REQUEST.value() + “”, “参数格式不符!”);

}

// 权限不足异常处理

@ExceptionHandler({AccessDeniedException.class})

@Respo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值