首页 > 解决方案 > kotlin 中的惯用异常处理

问题描述

处理异常,我发现自己需要这个方便的小功能:

inline fun exec(lambda: () -> Any): Boolean = try { lambda() ; true } catch(e:Exception) { false }

Kotlin 中是否存在类似的功能?繁重的 try-catch-finnaly 语法是否有惯用的替代方法?

标签: kotlinexception

解决方案


您可以使用runCatching然后.isSuccess在结果上使用以获得成功的布尔值

runCatching {
    // your code
}.isSuccess

如果您的代码需要结果,并且您想在失败时返回 null(这是惯用的 Kotlin),您可以这样做

val foo: Foo? = runCatching {
    // your code that produces a Foo
}.getOrNull()

推荐阅读