作用:springboot中不用關心異常,不用顯示的進行try/catch,**美觀,正解
擴充套件:可以加到類上,也可以加到類的方法上
關於**的幾點說明:
**中的@data註解是應用了lombok,需要的話匯入下,也可以刪除註解,自己生成get/set和構造方法
json格式化工具用的是fastjson
異常中加入了寫日誌,稍後會把日誌的配置**一併貼出來
全域性異常配置類
@controlleradvice
@responsebody
public class globalexceptionhandler
//空指標異常
@exceptionhandler(nullpointerexception.class)
public string nullpointerexceptionhandler(nullpointerexception ex)
//型別轉換異常
@exceptionhandler(classcastexception.class)
public string classcastexceptionhandler(classcastexception ex)
//io異常
@exceptionhandler(ioexception.class)
public string ioexceptionhandler(ioexception ex)
//未知方法異常
@exceptionhandler(nosuchmethodexception.class)
public string nosuchmethodexceptionhandler(nosuchmethodexception ex)
//陣列越界異常
@exceptionhandler(indexoutofbound***ception.class)
public string indexoutofbound***ceptionhandler(indexoutofbound***ception ex)
//400錯誤
//400錯誤
@exceptionhandler()
public string requesttypemismatch(typemismatchexception ex)
//400錯誤
@exceptionhandler()
public string requestmissingservletrequest(missingservletrequestparameterexception ex)
//405錯誤
//406錯誤
//500錯誤
@exceptionhandler()
public string server500(runtimeexception ex)
//棧溢位
@exceptionhandler()
public string requeststackoverflow(stackoverflowerror ex)
//除數不能為0
@exceptionhandler()
public string arithmeticexception(arithmeticexception ex)
//其他錯誤
@exceptionhandler()
public string exception(exception ex)
private string resultformat(integer code, t ex)
}
json格式化輸出
@data
public class jsonresult implements serializable
;public jsonresult(int code, string msg, mapdata)
public static string success()
public static string success(mapdata)
public static string failed()
public static string failed(string msg)
public static string failed(int code, string msg)
}
controller測試**
@responsebody
public string zero()
日誌輸出
capture exception by globalexceptionhandler: code: 13 detail: / by zero
#log
logging.config=classpath:logback.xml
logging.path=e:/log
logback.xml配置檔案
<?xml version="1.0" encoding="utf-8"?>
%d [%thread] %-5level %logger - %msg%n
$/testweb.log.%d.log
30%d [%thread] %-5level %logger - %msg%n
10mb
全域性異常處理 springBoot 全域性異常處理
先讚後看,月入百萬 springboot開發的web專案中,強調分層的概念,乙個完整的專案一般會劃分出controller層和service層。因此,為了 的可維護性,controller層 應該盡量簡潔,驗證一下引數,直接丟給service層處理即可 異常處理的方式無外乎兩種 在springboo...
springboot全域性異常捕獲
新專案中需要用到檔案上傳,有需要對上傳檔案大小進行限制,當檔案超過限制的時候,springboot框架會直接丟擲異常,不會進入你的方法中,當我們需要向前臺返回資訊的時候也無從返回,只能進行全域性捕獲檔案過大的異常,然後再返回資訊。controlleradvice public class mycon...
SpringBoot全域性異常處理
簡介通常在controller層需要去捕獲service層的異常,防止返回一些不友好的錯誤資訊到客戶端,但如果controller層每個方法都用模組化的try catch 去捕獲異常,會很難看也難維護,所以使用全域性異常比較方便 這方法是springboot封裝好了的,我們直接使用即可,普通的配置我...