SpringBoot全域性異常處理

2021-09-26 09:39:39 字數 1540 閱讀 8395

關鍵在於:註解@controlleradvice和@exceptionhandler

通過使用@controlleradvice定義統一的異常處理類,而不是在每個controller中逐個定義。@exceptionhandler用來定義函式針對的異常型別

建立乙個最簡單springboot專案

controller層**:

@controller

public class usercontroller

}

service層**:

@service

public class userserviceimpl implements userservice

if (tel.length() != 11)

system.out.println("tel:" + tel);

return resultutil.success(tel);

}}

統一結果返回工具類:

public class resultutil 

public static result success()

public static result error(integer code,string msg)

}

統一結果返回列舉類:

public enum resultenum 

public integer getcode()

public string getmsg()

}

自定義通用異常類

為了定位的錯誤更準確,希望不同的錯誤可以返回不同的錯誤碼,所以可以自定義乙個exception

/**

* 注意要繼承自runtimeexception,底層runtimeexception繼承了exception,

* spring框架只對丟擲的異常是runtimeexception才會進行事務回滾,

* 如果是丟擲的是exception,是不會進行事物回滾的

*/public class commonexception extends runtimeexception

public integer getcode()

public void setcode(integer code)

}

建立全域性異常處理類

通過使用@controlleradvice定義統一的異常處理類,而不是在每個controller中逐個定義。@exceptionhandler用來定義函式針對的異常型別

@controlleradvice

public class exceptionhandle else

}}

全域性異常處理 springBoot 全域性異常處理

先讚後看,月入百萬 springboot開發的web專案中,強調分層的概念,乙個完整的專案一般會劃分出controller層和service層。因此,為了 的可維護性,controller層 應該盡量簡潔,驗證一下引數,直接丟給service層處理即可 異常處理的方式無外乎兩種 在springboo...

springboot全域性異常捕獲

新專案中需要用到檔案上傳,有需要對上傳檔案大小進行限制,當檔案超過限制的時候,springboot框架會直接丟擲異常,不會進入你的方法中,當我們需要向前臺返回資訊的時候也無從返回,只能進行全域性捕獲檔案過大的異常,然後再返回資訊。controlleradvice public class mycon...

SpringBoot全域性異常處理

簡介通常在controller層需要去捕獲service層的異常,防止返回一些不友好的錯誤資訊到客戶端,但如果controller層每個方法都用模組化的try catch 去捕獲異常,會很難看也難維護,所以使用全域性異常比較方便 這方法是springboot封裝好了的,我們直接使用即可,普通的配置我...