1. 程式人生 > 實用技巧 >spring boot全域性捕獲異常

spring boot全域性捕獲異常

spring boot全域性捕獲異常

製作人:全心全意

@ExceptionHandler:標識攔截異常

  @ControllerAdvice:Controller的一個輔助類,最常用的就是作為全域性異常處理的切面類
  @ControllerAdvice可以指定掃描範圍
  @ControllerAdvice約定了幾種可行的返回值,如果是直接返回model類的話,需要使用@ResponseBody進行json轉換

    返回String值,標識跳轉到view
    返回modelAndView
    返回model+@ResponseBody

捕獲異常類

package com.zq.main.controller;

import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
//僅能捕獲系統程式碼出現的問題,例如500(404無法捕獲)
public class ZqExceptionHandler {
	// 攔截系統的所有異常
	@ExceptionHandler(RuntimeException.class)
	@ResponseBody
	public Map<String, String> exceptionHandler() {
		System.out.println(11111);
		HashMap<String, String> objectHashMap = new HashMap<>();
		objectHashMap.put("respCode", "500");
		objectHashMap.put("respMsg", "系統錯誤");
		return objectHashMap;
	}
}