ExceptionHandler注解
在程序开发的时候,控制层难免出现异常,出现异常之后直接在页面显示500错误,这样肯定不合适,最好是提示一些友好的提示性信息。
SpringMVC上下文中,已经装备好了异常解析器对象:ExceptionHandlerExceptionResovler,所有的其他装配的异常解析器都是ExceptionHandlerExceptionResolver的子类。
异常处理的步骤
编写异常处理类
@ControllerAdvice //表示这个类作为异常處理器
public class MyExceptionHandler {
/**
* 表示本方法处理所有的异常
* @return
*/
@ExceptionHandler(Exception.class)
public String handlerAllException() {
return "error";
}
/**
* 表示本方法只处理数据下标越界异常
* @return
*/
@ExceptionHandler(ArrayIndexOutOfBoundsException.class)
public String handlerException() {
System.out.println("数组下标越界异常出现了");
return "error";
}
如果发生异常,会先查找有无对应的异常方法,如果无,则寻找上一层的异常的方法。比如:RuntimeException异常,上述中没有处理此异常的方法,则执行handerAllExcetion()