新建包com.chy.exception,包下新建類GlobalExceptionHandler:
@ControllerAdvice //controller的增強 public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) //給controller添加異常處理,括號中指定要捕獲處理哪種異常,Exception.class表示處理所有種類的異常 @ResponseBody //返回給瀏覽器顯示出來 public Map<String,String> handler1(Exception e){ //如果要使用異常對象,可以作為參數傳入異常對象 Map<String, String> map = new HashMap<>(2); map.put("errorCode", "01"); map.put("errorMsg", "系統發生錯誤!"); //可以傳回自定義的信息,也可以傳回e.getMessage() return map; } }
瀏覽器中的顯示:
因為我們添加@ResponseBody,不管返回map、String,都會轉換為json形式。
- 可以編寫多個方法,來處理不同種類的異常
- 可以像上面一樣直接返回一段文本,也可以調用視圖
- 處理的是未經捕獲的、拋到controller的異常