問題:使用@ExceptionHandle註解須要在每個controller代碼裏面都添加異常處理,會咋成代碼冗餘web
解決方法:新建一個全局異常處理類,添加@ControllerAdvice註解便可spring
package com.bjsxt.exception; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; /** * Created by Administrator on 2019/2/14. * 全局異常處理類 */ @ControllerAdvice public class GlobalException { /** * 處理ArithmeticException異常,該@ExceptionHandler註釋的value屬性能夠是一個數組, * 而後再根據注入的exception判斷對不一樣異常分別進行不一樣的處理,也能夠寫多個controller, * 對多個不一樣異常進行處理,這裏採用第二種 * @param e 會將產生異常對象注入到方法中 * @return 該方法須要返回一個 ModelAndView:目的是可讓咱們封裝異常信息以及視圖的指定 */ @ExceptionHandler(value = {ArithmeticException.class}) public ModelAndView arithmeticExceptionHandler(Exception e){ ModelAndView mv=new ModelAndView("error_arithmetic"); mv.addObject("msg",e.toString()); return mv; } /** * 處理NullPointerException異常 * @param e 會將產生異常對象注入到方法中 * @return 該方法須要返回一個 ModelAndView:目的是可讓咱們封裝異常信息以及視圖的指定 */ @ExceptionHandler(value = {NullPointerException.class}) public ModelAndView nullPointerExceptionHandler(Exception e){ ModelAndView mv=new ModelAndView("error_nullPointer"); mv.addObject("msg",e.toString()); return mv; } }