目录
- 概述
- @RestControllerAdvic编程e注解
- 总结
概述
在Spring中,封装了全局异常捕获方法,方便我们处理和管理异常,捕获异常可以解决以下业务场景:
- 友好返回给用户提示。
- 记录日志方便排查问题
- 方便管理异常等
以下程序模拟在Controller中出现异常编程:
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestContandroidroller; /** * 全局异常捕获测试 * @author terry * @version 1.0 * @date 2022/1/6 14:29 */ @RestController @RequestMapping("/gloab") public www.devze.comclass GloabExceptionController { @RequestMapping("/test1") public String test1(){ // 模拟异常 int i = 1/0; return "success"; } }
打印输出
{
"timestamp": "2022-01-06T06:51:26.538+00:00", "status": 500, "error": "Internal Server Error", "message": "", "path": "/gloab/test1"}
出现问题:
当发送异常之后,android后续的代码都不执行了,而且返回的参数也不是我们需要的。
@RestControllerAdvice注解
@RestControllerAdvice和@ControllerAdvice都是全局捕获异常配置类,@RestControllerAdvice更适用于返回jsON数据,@ControllerAdvice返回JSON需要方法额外添加@ResponseBody。
@RestControllerAdvice class GloabExceptionHandler { @ExceptionHandler(value = Exception.class) public String exceptionHandler(Exception e){ System.out.println("ERROR: " + e.getMessage()); return "error"; } }
打印输出
error
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论