![](/img/trans.png)
[英]How to return custom error message in Spring Boot for /error page
[英]Spring Boot how to return custom error message when validating @PathVariable parameters
是否可以向路径变量添加一些自定义验证消息?
我有一些 GET
@GetMapping("/v2/tw/{id}")
public TwDto getTw(Authentication auth, @PathVariable Long id) {
在/v2/tw/someString
的情况下,我想捕获错误并添加一些自定义错误消息,例如“无效的 tw ID”... 怎么做? 在ControllerAdvice
添加一些ExceptionHandler
?
对于您的特定用例,您可以在 Controller 或@ControllerAdvice
class 中使用@ExceptionHandler
,如此处所示。 例如,我为此返回 NOT_FOUND 错误。
@ExceptionHandler({MethodArgumentTypeMismatchException.class})
@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "this is the reason")
public void handle() {
}
在您启用之前,您可能看不到实际错误响应中的reason
server:
error:
include-message: always
如果您认为您的@ExceptionHandler
仅在 Controller class 中需要,您可以将该方法保留在 controller 中。 或者,您可以创建一个@ControllerAdvice
class 并将该方法放在那里,以便您可以在应用程序中的多个控制器之间重用。
但是,如果您想要更复杂的验证,我建议将id
类型保留为 String,然后手动转换为 Long 并执行验证。 这样做您可以抛出自己的 RuntimeException 并处理不同的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.