gpt4 book ai didi

java - Spring Boot 如何在验证@PathVariable 参数时返回自定义错误消息

转载 作者:行者123 更新时间:2023-12-05 03:44:23 24 4
gpt4 key购买 nike

是否可以向路径变量添加一些自定义验证消息?

我有一些 GET

  @GetMapping("/v2/tw/{id}")
public TwDto getTw(Authentication auth, @PathVariable Long id) {

/v2/tw/someString 的情况下,我想捕获错误并添加一些自定义错误消息,例如“无效的 tw ID”...该怎么做?在 ControllerAdvice 中添加一些 ExceptionHandler?

最佳答案

对于您的特定用例,您可以在 Controller 或 @ControllerAdvice 类中使用 @ExceptionHandler,如此处所示。例如,我为此返回了 NOT_FOUND 错误。

@ExceptionHandler({MethodArgumentTypeMismatchException.class})
@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "this is the reason")
public void handle() {
}

您可能看不到实际错误响应中的原因,直到您启用

server:
error:
include-message: always

如果您认为您的@ExceptionHandler 只在Controller 类中需要,您可以将该方法保留在 Controller 中。或者,您可以创建一个 @ControllerAdvice 类并将方法放在那里,以便您可以在应用程序中跨多个 Controller 重复使用。


但是,如果您想要更复杂的验证,我会建议将 id 类型保留为 String,然后手动转换为 Long 并执行验证。这样做您可以抛出自己的 RuntimeException 并处理不同的情况。

关于java - Spring Boot 如何在验证@PathVariable 参数时返回自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66465117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com