SpringBoot 全域性異常處理

2021-10-04 06:48:05 字數 2986 閱讀 8236

@slf4j

@restcontrolleradvice

public class exceptioncontroller

*/@exceptionhandler(value = methodargumentnotvalidexception.class)

public apimessagemethodargumentnotvalidhandler(methodargumentnotvalidexception ex)

@exceptionhandler(value = bindexception.class)

public apimessagebindexceptionhandler(bindexception ex)

/*** http請求方式不正確

** @param ex 異常

* @return 返回值

* 請求引數不全

** @param ex 異常

* @return 返回值

*/@exceptionhandler(value = missingservletrequestparameterexception.class)

public apimessagemissingservletrequestparameterexception(missingservletrequestparameterexception ex) 】", ex.getmessage());

return new apimessage<>(ex);

}/**

* 請求引數型別不正確

** @param ex 異常

* @return 返回值

*/@exceptionhandler(value = typemismatchexception.class)

public apimessagetypemismatchexception(typemismatchexception ex) 】", ex.getmessage());

return new apimessage<>(ex);

}/**

* 資料格式不正確

** @param ex 異常

* @return 返回值

*/@exceptionhandler(value = dataformatexception.class)

public apimessagedataformatexception(dataformatexception ex) 】", ex.getmessage());

return new apimessage<>(ex);

}/**

* 非法輸入或斷言錯誤

** @param ex 異常

* @return 返回值

*/@exceptionhandler(value = illegalargumentexception.class)

public apimessageillegalargumentexception(illegalargumentexception ex) 】", ex.getmessage());

return new apimessage<>(ex);

}/**

* 請求引數錯誤

** @param ex 異常

* @return 返回值

*/@exceptionhandler(value = constraintviolationexception.class)

public apimessageconstraintviolationexception(constraintviolationexception ex) 】", ex.getmessage());

return new apimessage<>(ex);

}/**

* 運算元據庫出現異常

** @param ex 異常

* @return 返回值

*/@exceptionhandler(value = dataacces***ception.class)

public apimessagedatadoexception(dataacces***ception ex) 】", ex.getmessage());

return new apimessage<>(ex);

}/**

* 系統異常

** @param ex 異常

* @return 返回值

*/@exceptionhandler(exception.class)

public apimessageapiexceptionhandler(exception ex)

}log.error("系統異常:【{}】", sb.tostring());

return new apimessage<>(ex);

}/**

* 自定義異常

** @param apiexception 自定義異常

* @return 返回值

*/@exceptionhandler(apiexception.class)

public apimessageapiexception(apiexception apiexception)

@data

@noargsconstructor

@allargsconstructor

@equalsandhashcode(callsuper = false)

static class argumentinvalid

}

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

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

springboot全域性異常捕獲

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

SpringBoot全域性異常處理

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