如何解决Micronaut 中的异常处理
在 micronaut 中是否有一种方法可以抛出一个异常来指定响应的错误代码,就像我们在 springboot 中可以做的那样:
throw new ResponseStatusException(HttpStatus.FORBIDDEN)
还是我们总是必须实现自己的异常处理程序?
我宁愿不必为了能够返回 400 或 403 响应而实现异常处理程序。
解决方法
我想要的课程是:
io.micronaut.http.exceptions.HttpStatusException
我一开始没有找到,因为我缺少依赖项:
implementation("io.micronaut:micronaut-http")
我正在使用它成功返回 404 错误并在此示例中显示一条消息:
fun findById(id: Long): User {
val user = userRepository.findById(id)
return if (user.isPresent()) user.get() else throw HttpStatusException(HttpStatus.NOT_FOUND,"User not found")
}
如果这是体面的 kotlin 代码,请随时发表评论。我对 kotlin 很陌生,有 java 和 Scala 背景。对我来说看起来不错xD
,只有一个技巧,如果你想避免 return 语句,你可以更新你的方法以使用“kotlin 的全部功能”
像这样:
fun findById(id: Long): User =
userRepository.findById(id)
?.let { it.orElseThrow(HttpStatusException(HttpStatus.NOT_FOUND,"User not found"))}
这是用于安全调用运算符和转换方法 let
的用途,用于获取您的实体或在未找到时抛出异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。