Springboot的一大亮点就是可以实现全局捕捉异常,在一个项目中的异常我们都会统一处理,新建一个包,com.runner.exception,然后建一个类GlobalDefaultExceptionHandler,并在class注解上@ControllerAdvice,在方法上添上注解,@ExceptionHandler(value=Exception.class),具体代码如下:
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
Public class GlobalDefaultExceptionHandler {
@ExceptionHandler(value = Exception.class)
Public void defaultErrorHandler(HttpServletRequest req, Exception e) {
//打印异常信息:
e.printStackTrace();
System.out.println("GlobalDefaultExceptionHandler.defaultErrorHandler()");
/*
* 返回json数据或者String数据:
* 那么需要在方法上加上注解:@ResponseBody
* 添加return即可。
*/
/*
* 返回视图:
* 定义一个ModelAndView即可,
* 然后return;
* 定义视图文件(比如:error.html,error.ftl,error.jsp);
*
*/
}
}
新建一个包com.runner.controller,然后建一个类TestController,加入方法:
@RequestMapping("/zeroException")
publicint zeroException(){
return 100/0;
}
访问:http://127.0.0.1:8080/zeroException,发现抛出异常,这时在控制台就可以看到我们全局捕捉的异常信息。