kotlin - kotlin 中的惯用异常处理
问题描述
处理异常,我发现自己需要这个方便的小功能:
inline fun exec(lambda: () -> Any): Boolean = try { lambda() ; true } catch(e:Exception) { false }
Kotlin 中是否存在类似的功能?繁重的 try-catch-finnaly 语法是否有惯用的替代方法?
解决方案
您可以使用runCatching
然后.isSuccess
在结果上使用以获得成功的布尔值
runCatching {
// your code
}.isSuccess
如果您的代码需要结果,并且您想在失败时返回 null(这是惯用的 Kotlin),您可以这样做
val foo: Foo? = runCatching {
// your code that produces a Foo
}.getOrNull()
推荐阅读
- python - 每次调用python脚本时如何避免重新加载ML模型?
- firebase - 在 UI Firebase Auth Flutter 中显示异常错误
- python - 使用 python madlibs 程序自动化无聊的东西
- r - 具有多个 bin 和组的直方图
- google-cloud-firestore - Firestore:我们不能在使用 whereIn 过滤的字段上使用 orderBy 吗?
- javascript - 使用 HttpClient 和 Angular 将表单发布到 FormSubmit
- python - 如何检测玩家和方块之间的碰撞?游戏
- pandas - 将 nan 值替换为 -99999 是否有意义?
- php - 如何减少php中的if条件?
- python - 在网页或其他应用程序中使用 Python 结果 - 数据科学