【SpringMVC】JSON注解&全局异常处理机制
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
// 处理所有Exception类型的异常
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public String handleAllExceptions(Exception ex) {
// 记录日志,发送警告等
return "An error occurred: " + ex.getMessage();
}
// 处理特定的异常类型
@ExceptionHandler(MyCustomException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handleMyCustomException(MyCustomException ex) {
// 记录日志,发送警告等
return "Error: " + ex.getMessage();
}
}
// 自定义异常类
class MyCustomException extends RuntimeException {
public MyCustomException(String message) {
super(message);
}
}
这个代码示例展示了如何在Spring MVC中创建一个全局异常处理器。通过@ControllerAdvice
注解,我们可以定义全局异常处理方法,这些方法会捕获控制器中抛出的异常。我们使用@ExceptionHandler
注解来指定需要处理的异常类型,并用@ResponseStatus
注解来指定返回的HTTP状态码。这种方式使得我们可以集中处理异常,而不是在每个控制器方法中重复相同的错误处理逻辑。
评论已关闭