SpringBoot全局异常处理
Springboot中使用自定义异常,进行全局异常处理
自定义一个异常类
public class UserNotExistException extends RuntimeException{
public UserNotExistException() {
super("用户不存在!");
}
}
编写一个异常处理器
@ControllerAdvice
public class MyExceptionHandler {
返回json数据
@ResponseBody
@ExceptionHandler(UserNotExistException.class)
public Map<String, Object> handlerException(Exception e){
Map<String, Object> map = new HashMap<>();
map.put("code","user.NotExist");
map.put("message",e.getMessage());
return map;
}
}
异常处理器需要加上@ControllerAdvice注解,@ControllerAdvice注解可以将类标识为一个异常处理器类,在要处理的异常方法上标上@ExceptionHandler,括号里边为自定义的异常类
在处理异常的方法中,写要返回的json数据,一般为Map集合,也可以编写一个返回异常信息的类来返回异常信息。
使用Controller来测试
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello(@RequestParam("user") String user){
if (user.equals("aaa")){
throw new UserNotExistException();
}
return "Hello world";
}
}

本文介绍了如何在SpringBoot中实现全局异常处理。通过自定义`UserNotExistException`异常类,然后创建一个`MyExceptionHandler`控制器建议类,使用@ControllerAdvice和@ExceptionHandler注解进行异常捕获,并返回JSON格式的错误信息。在`HelloController`中测试了异常的抛出和处理流程。
2102

被折叠的 条评论
为什么被折叠?



