首页 > 解决方案 > 如何正确地在 Kotlin 中快速失败?

问题描述

如果特定功能正在返回,我想快速失败null。我没有默认值会使处理有意义的情况。

这是片段:

        val entityAttributes = entity.optJSONObject("Attributes") ?: run {
            LOG.error("Could not find 'Attribute' entry in Entity object")
            return
        }

因此,如果entity.optJSONObject("Attributes")返回 null (尽管opt*确实如此),我想逃离函数范围。

我的做法是正确的吗?我对 Kotlin 还很陌生,希望尽早习惯正确的方式来做这些事情。

标签: kotlin

解决方案


您可以像上面那样提前从函数中返回。如果您的函数返回除 Unit 之外的其他内容,则您必须返回一些默认值。

抛出异常允许您退出函数而不返回任何内容,但是如果您没有在某处捕获该异常,该异常将使程序崩溃。有时,如果错误是不应该发生的,这正是您想要发生的事情,因为这样您将在测试期间捕获它并能够在发布应用程序之前修复它。

使用全局error(cause: Any)函数,它会立即抛出 IllegalStateException。


推荐阅读