Spring 控制器中的 Kotlin 错误处理。有没有办法展示给他们看?

问题描述 投票:0回答:1

我在 Java 上编写了控制器,并且非常喜欢我可以在控制器中看到前端成功和失败的答案,并且

@ExceptionHandler

    @GetMapping("/names")
    public List<MyObj> getMyObj(
            @RequestParam Integer page,
            @RequestParam Integer countPerPage
    ) throws SomethingWrongException, OtherWrongExceptions {
        return service.getInfo(page, countPerPage);
    }

但在 Kotlin 中没有

throws
,所以我现在只能看到状态“ok”的信息。

这种情况有没有最佳实践(除了手工记录)?

我了解

kotlin.Result
,但它不允许查看错误类型,并且
@Throws
太多取决于开发人员。

spring kotlin error-handling
1个回答
0
投票

Kotlin 没有检查异常(有关详细信息,请参阅:https://kotlinlang.org/docs/exceptions.html)并且(据我所知)也没有提供重新引入它们的方法。您还会发现越来越多的 java 框架和组件使用未经检查的异常(例如

Jakarta.validation
或 Spring Boot 6 异常)。

在您的具体示例(在控制器级别)中,在 java 中使用检查异常无论如何不会产生任何编译时影响,因此开发人员仍然可以决定不注册异常处理程序。

我的建议是尝试适应 Spring 的异常处理,例如通过创建

ErrorResponseException
(或继承它)。 Spring 的
ResponseEntityExceptionHandler
将为您完成剩下的工作 - 或者编写您自己的
ControllerAdvice
(https://reflectoring.io/spring-boot-exception-handling/#controlleradvice)

© www.soinside.com 2019 - 2024. All rights reserved.