gpt4 book ai didi

exception - 在Kotlin异常 block 中,如何实现 'else'(成功) block ?

转载 作者:行者123 更新时间:2023-12-02 12:35:46 25 4
gpt4 key购买 nike

在Python中,我可以这样做:

try:
some_func()
except Exception:
handle_error()
else:
print("some_func was successful")
do_something_else() # exceptions not handled here, deliberately
finally:
print("this will be printed in any case")

我觉得这读起来很雅致;仅当未引发异常时才到达 else块。

在 Kotlin 如何做到这一点?我是否应该声明一个局部变量并在块下面进行检查?
try {
some_func()
// do_something_else() cannot be put here, because I don't want exceptions
// to be handled the same as for the statement above.
} catch (e: Exception) {
handle_error()
} finally {
// reached in any case
}
// how to handle 'else' elegantly?

我找到了 Kotlin docs | Migrating from Python | Exceptions,但这没有涵盖Python中发现的 else块功能。

最佳答案

使用runCatching的另一种方法是使用Result的扩展功能

runCatching {
someFunc()
}.onFailure { error ->
handleError(error)
}.onSuccess { someFuncReturnValue ->
handleSuccess(someFuncReturnValue)
}.getOrDefault(defaultValue)
.also { finalValue ->
doFinalStuff(finalValue)
}

看看 Result的文档: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-result/index.html

关于exception - 在Kotlin异常 block 中,如何实现 'else'(成功) block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57182851/

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