前几节小博老师给大家介绍了SpringMVC异常处理两种方法,今天继续介绍使用注解方式进行异常处理的方式@ExceptionHandler。@ExceptionHandler只有一个参数value,指定需要处理的异常类型。是一个数组类型。如:
@ExceptionHandler(value={NullPointerException.class,IllegalArgumentException.class})
如果只需要处理一种类型的异常,可以简写为:@ExceptionHandler(NullPointerException.class)。
当然,也可以不加参数,拦截所有类型的异常。
需要注意的是,该注释必须与出错的方法写在同一个controller里。下面是一个异常处理示例:
以上定义的Controller,所有映射方法出错,都将调用exp方法进行异常处理。当然,我们可以定义多个方法,并设定每个方法注解@ExceptionHandler的异常类型参数,这样程序逻辑性会更加清晰。
使用@ExceptionHandler注解的一个优点是,在需要返回json数据错误信息的时候特别有用。在@ExceptionHandler注解的方法上再加上@ResponseBody注解即可。