現在我使用 controlleradvice 制作自定義處理程式并且運行良好。我想向“發票流程已失敗”的自定義驗證添加其他資訊。我如何做到這一點?謝謝你
uj5u.com熱心網友回復:
您可以定義自己的例外物件并使用它來將資料從控制器方法傳遞到例外處理程式方法。
首先將例外定義為:
public class InvoiceException extends RuntimeException {
private Long invoiceId;
private String additionalInfo;
}
然后在控制器中,如果您檢查是否違反了相關的業務規則,則創建此例外的實體并拋出它:
public class InvoiceController {
@PostMapping("/invoice")
public Long processInvoice(InvoiceRequest request){
if(fail) {
throw new InvoiceException(invoiceId, "foobar");
} ?
?}
}
在 中@ContorllerAdvice,然后您可以從例外實體訪問這些資料:
@ControllerAdvice
public class MyExceptionHandler {
?@ExceptionHandler(InvoiceException.class)
?public ResponseEntity<ErrorMessage> handle(InvoiceException ex) {
?
?}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/321967.html
