@ExceptionHandler注解我们一般是用来自定义异常的。
可以认为它是一个异常拦截器(处理器)。
控制层TestControll调用
//方法一
@Controller
@RequestMapping("/admin")
public class TestControll extends GlobalExceptionHandler {
private Logger logger = LoggerFactory.getLogger(TestControll.class);
@Autowired
private UserInfoSerimpl userInfoSerimpl;
@ResponseBody
@RequestMapping("/test")
public String test(){
logger.info("11111111111");
userInfoSerimpl.saveUserInfo();
logger.info("2222222222");
return "sdfsfs";
}
}
public class GlobalExceptionHandler {
private final Logger logger = LogManager.getLogger(GlobalExceptionHandler.class);
@ExceptionHandler({Exception.class}) //申明捕获那个异常类
@ResponseBody
public String handleAndReturnData(Exception e) {
logger.error(e.getMessage(), e);
return "自定义异常返回";
}
}
//方法二
@Controller
@RequestMapping("/admin")
public class TestControll {
private Logger logger = LoggerFactory.getLogger(TestControll.class);
@Autowired
private UserInfoSerimpl userInfoSerimpl;
@ResponseBody
@RequestMapping("/test")
public String test(){
logger.info("11111111111");
userInfoSerimpl.saveUserInfo();
logger.info("2222222222");
return "sdfsfs";
}
}
/**
* @ControllerAdvice: 表示当前类是异常处理类,给Controller控制器类增强功能的
* 位置: 在类的上面
*/
@ControllerAdvice
public class GlobalExceptionHandler {
private final Logger logger = LogManager.getLogger(GlobalExceptionHandler.class);
@ExceptionHandler({Exception.class}) //申明捕获那个异常类
@ResponseBody
public String handleAndReturnData(Exception e) {
logger.error(e.getMessage(), e);
return "自定义异常返回";
}
}
文章介绍了如何在SpringMVC中使用@ExceptionHandler注解来实现自定义的异常处理。通过创建一个全局异常处理类GlobalExceptionHandler,使用@ControllerAdvice和@ExceptionHandler结合,可以捕获并处理所有Controller中的异常,返回自定义的错误信息。
917

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



