【发布时间】:2021-02-22 12:44:38
【问题描述】:
为什么我们不能直接在 oc 或 swift 中捕获 Kotlin 代码产生的异常?是因为Kotlin做了什么处理吗?
【问题讨论】:
-
“例外”到底是什么意思?在 Swift 和 ObjC 中都没有异常处理,至少没有一个可以与 C#、C++、Java 等相媲美。
标签: ios swift kotlin-native
为什么我们不能直接在 oc 或 swift 中捕获 Kotlin 代码产生的异常?是因为Kotlin做了什么处理吗?
【问题讨论】:
标签: ios swift kotlin-native
Swift 和 Objc 中的异常处理与您在 JVM 和 Kotlin 中所使用的不同。这只是你需要习惯的东西。在 JVM 上,您可以在更高级别上“捕获所有内容”,但在 Swift 和 Objc 中,您需要告诉调用者您可能正在抛出异常,并且调用者 必须 使用尝试/捕捉。
Kotlin 摆脱了检查异常。 Swift/Objc 在光谱的另一端,因为只有显式异常,您必须使用 try 块调用它们。
您可以将@Throws 注解添加到您直接从 Swift/Objc 调用的方法中,这会以 Swift/Objc 期望的方式抛出异常。但是,如果您不使用 @Throws 注释该方法,应用程序将改为中止。
【讨论】: