SpringMVC 異常處理 返回異常code及前端AJAX解析
後端:
統一異常處理器
@ControllerAdvice public class DefaultExceptionHandler { @ExceptionHandler(value = Exception.class) @ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseBody public ErrorResponse errorResponse(Exception exception) { return new ErrorResponse(exception.getMessage()); } /** * 沒有許可權 異常 * <p/> * 後續根據不同的需求定製即可 */ @ExceptionHandler({NullPointerException.class}) @ResponseStatus(HttpStatus.UNAUTHORIZED) public ModelAndView processUnauthenticatedException(NativeWebRequest request, Exception e) { ModelAndView mv = new ModelAndView(); mv.addObject("exception", e); mv.setViewName("error/unauthorized"); return mv; } public class ErrorResponse { private String message; public ErrorResponse(String message) { this.message = message; } public String getMessage() { return message; } } }
Controller:
@ResponseBody
@RequestMapping(method = RequestMethod.GET, value = "status",produces = {"application/json"})
public Test statusTest(Test t) throws Exception {
//System.out.println(t);
int a= 0/0;
return new Test();
}
前端
其餘code處理方式一致