正文
spring 統一異常處理有 3 種方式,分別為:
使用 @ exceptionhandler 註解
實現 handlerexceptionresolver 介面
使用 @controlleradvice 註解
package com.tao.smp.exception;
/** * api統一的返回結果類
*/public class apiresult
public apiresult(resultcode resultcode)
/*** 生成乙個apiresult物件, 並返回
** @param resultcode
* @return
*/public static apiresult of(resultcode resultcode)
public string getcode()
public void setcode(string code)
public string getmsg()
public void setmsg(string msg)
@override
public string tostring() ';
}}
package com.tao.smp.exception;
/** * 錯誤碼
*/public enum resultcode
public string getcode()
public string getmsg()
}
package com.tao.smp.exception;
/** * 自定義業務異常
*/public class businessruntimeexception extends runtimeexception
public string getcode()
public void setcode(string code)
public string getmsg()
public void setmsg(string msg)
public resultcode getresultcode()
public void setresultcode(resultcode resultcode)
}
最後便是定義全域性異常處理類。
通過@controlleradvice
指定該類為controller
增強類。
通過@exceptionhandler
自定捕獲的異常型別。
通過@responsebody
返回json
到前端。
package com.tao.smp.exception;
import org.slf4j.logger;
import org.slf4j.logge***ctory;
import org.springframework.web.bind.annotation.controlleradvice;
import org.springframework.web.bind.annotation.exceptionhandler;
import org.springframework.web.bind.annotation.responsebody;
/** * 全域性controller層異常處理類
*/@controlleradvice
public class globalexceptionresolver
/*** 處理所有業務異常
** @param e 業務異常
* @return json結果
*/@exceptionhandler(businessruntimeexception.class)
@responsebody
public apiresult handleopdruntimeexception(businessruntimeexception e)
}
package com.tao.smp.controller;
import com.tao.smp.exception.businessruntimeexception;
import com.tao.smp.exception.resultcode;
import org.springframework.stereotype.controller;
/** * 測試異常的丟擲
*/@controller
public class testcontroller
return "success";
}}
其他:常用異常捕獲
logger.error("服務執行異常", e);
e.printstacktrace();
return serviceresponsehandle.failed("server_error");
}}
springmvc異常統一處理(一)
目錄 正文 spring 統一異常處理有 3 種方式,分別為 使用 exceptionhandler 註解 實現 handlerexceptionresolver 介面 使用 controlleradvice 註解 使用該註解有乙個不好的地方就是 進行異常處理的方法必須與出錯的方法在同乙個contr...
SpringMVC 全域性異常統一處理
使用 exceptionhandler 註解 實現 handlerexceptionresolver 介面 使用 controlleradvice 註解 當以上三個方式,一起出現時,只執行執行範圍最小的方式,後面的方式不再執行處理 執行範圍 exceptionhandler controllerad...
統一處理異常
1.controlleradvice 註解定義全域性異常處理類 controlleradvice public class globalexceptionhandler 2.exceptionhandler 註解宣告異常處理方法,註解的方法的引數列表裡,還可以宣告很多種型別的引數 controlle...