【问题标题】:Why can't we directly catch exceptions generated by Kotlin code in oc or swift?为什么我们不能在 oc 或 swift 中直接捕获 Kotlin 代码产生的异常?
【发布时间】:2021-02-22 12:44:38
【问题描述】:

为什么我们不能直接在 oc 或 swift 中捕获 Kotlin 代码产生的异常?是因为Kotlin做了什么处理吗?

【问题讨论】:

  • “例外”到底是什么意思?在 Swift 和 ObjC 中都没有异常处理,至少没有一个可以与 C#、C++、Java 等相媲美。

标签: ios swift kotlin-native


【解决方案1】:

Swift 和 Objc 中的异常处理与您在 JVM 和 Kotlin 中所使用的不同。这只是你需要习惯的东西。在 JVM 上,您可以在更高级别上“捕获所有内容”,但在 Swift 和 Objc 中,您需要告诉调用者您可能正在抛出异常,并且调用者 必须 使用尝试/捕捉。

Kotlin 摆脱了检查异常。 Swift/Objc 在光谱的另一端,因为只有显式异常,您必须使用 try 块调用它们。

可以@Throws 注解添加到您直接从 Swift/Objc 调用的方法中,这会以 Swift/Objc 期望的方式抛出异常。但是,如果您不使用 @Throws 注释该方法,应用程序将改为中止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2018-02-04
    • 2021-03-16
    • 2010-12-07
    相关资源
    最近更新 更多