gpt4 book ai didi

scala - 在 scala 中使用模式匹配优化错误处理

转载 作者:行者123 更新时间:2023-12-03 07:46:34 24 4
gpt4 key购买 nike

我有一个如下所示的代码块来处理一些异常,我使用 if-else 语句,但我不喜欢它们相互嵌套,想知道是否可以使用模式匹配来使它更好?

    try {
if (response.code < 200 || response.code > 299) {
throw new SearchClientFailure(s"API request failed with code ${response.code}, body ${response.body}")
} else {
if (isExceeded(response.body)) {
throw new SearchClientFailure("Exceed limit")
} else {
response.body
}
}
} catch {
case e: SearchClientFailure =>
if (queries.isEmpty) {
throw new SearchClientFailure
} else {
logger.warn(s"Failed to update the queries: ${e.message}")
queries
}
case _ =>
throw new SearchClientFailure
}

最佳答案

你可以这样做:

   response match {
case r if (r.code < 200 || r.code > 299) => ...
case r if (isExceeded(r.body)) => ...
case r => r.body
}

它更好吗?老实说,我不是 100% 肯定,我真的不喜欢这种风格而不是你的风格。

顺便说一句,根据您使用的内容,您通常可以访问 response.isSuccess() 或 response.code.isSuccess() 而不是测试代码值

关于scala - 在 scala 中使用模式匹配优化错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852597/

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