Ajax形式配置全局异常捕获:
restcontorlleradvice
捕获ajax访问时的异常
@RestControllerAdvice:拦截异常并统一处理,它通常用于定义@ExceptionHandler, @InitBinder 和 @ModelAttribute 适用于所有@RequestMapping方法的方法,通过它就可以返回我们期望的异常返回格式,如果全部异常返回格式使用json,就可以使用该注解代替@ExceptionHanlder下的@ResponseBody注解。
@ControllerAdvice:拦截异常并统一处理,它通常用于定义@ExceptionHandler, @InitBinder 和 @ModelAttribute 适用于所有@RequestMapping方法的方法,通过它就可以返回我们期望的异常返回格式,注意:使用它时@ExceptionHandler必须和@ResponseBody一起结合使用。
@ExceptionHandler:自动捕获controller层出现的指定类型异常,并对该异常进行相应的异常处理。
Exception的printStackTrace():打印该异常类名、字符串信息和方法调用到异常抛出的轨迹。
Exception的getMessage():返回异常的字符串信息,也就是异常的构造方法中的参数。如果是自定义异常,需要把字符串需要传给父类的构造器,否则不会输出信息。(除非自己定义这几个方法)
注意:如果是自己定义的异常类(继承了Exception),字符串信息要传给其父类Exception的构造器,否则
这里方法返回一个包装类,通过包装类IMoocJSONResult把异常信息进行返回。
页面中加入debugger;运行的时候相当于产生一个端点,谷歌浏览器下,F10可以继续往下执行,而且可以在右边的watch中输入想要查看的数据。
ajax异常处理类
类:RestControllerAdvice
方法:ExceptionHandler(value=Exception.class)
40%
SpringBoot配置全局异常捕获
@RestControllerAdvice //助手类
public class AjaxExceptionHandler{
@ExceptionHandler(value=Exception.class)
public JSONResult errorHandler(HttpServletRequest request, Exception e) throws Exception {
e.printStactTrace();
ModelAndView mav = new ModelAndView();
return JSONResult.errorException(e.getMessage());
}
}
ajax 加入 debugger
ajax代码
html 地址详情
异常捕获类 html地址
Ajax 异常捕获类
ajax形式
ajax异常捕获
捕获ajax 异常 和捕获页面跳转异常,不同点在于,捕获完之后返回一个json对象,在js中对这个对象中的状态码进行判断,判断是否为异常做响应处理
RestControllerAdvice统一处理ajax请求异常
js添加debugger代码,浏览器运行到此行就会开启断点调试
捕获异常的具体代码结构需要重新学习该章
//js脚本调试时可以用debugger