kotlin - 如何正确地在 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 还很陌生,希望尽早习惯正确的方式来做这些事情。
解决方案
您可以像上面那样提前从函数中返回。如果您的函数返回除 Unit 之外的其他内容,则您必须返回一些默认值。
抛出异常允许您退出函数而不返回任何内容,但是如果您没有在某处捕获该异常,该异常将使程序崩溃。有时,如果错误是不应该发生的,这正是您想要发生的事情,因为这样您将在测试期间捕获它并能够在发布应用程序之前修复它。
使用全局error(cause: Any)
函数,它会立即抛出 IllegalStateException。
推荐阅读
- mysql - 如何获取用户订购的最早订单的日期?
- python - Python 'tuple' 无法转换为 MySQL 类型
- css - React CSS 不会显示在移动设备(Chrome、Safari、Firefox)上,但会显示在桌面站点上
- elasticsearch - Elasticsearch - 将符号视为常规字符串并使文本不区分大小写
- winapi - 关于在上下文菜单上获取键盘敲击的问题
- c# - 访问 AzureKeyVault
- mongodb - 在新创建的文档中创建新的子引用
- excel - 我想确定以黄色突出显示的按钮的正确代码
- javascript - 计算器未在控制台 HTML/JS 上显示结果
- pine-script - Pine 脚本输入字符串选项