gpt4 book ai didi

exception - 对Kotlin stdlib中的常见java.lang。* Exceptions进行类型别名的目的是什么?

转载 作者:行者123 更新时间:2023-12-02 13:13:03 24 4
gpt4 key购买 nike

最近,我想知道如果我想创建特定于应用程序的异常,应该在Kotlin中继承哪个类。

我注意到我可以继承:Kotlin自己的Exception类型和java.util.Exception
因此,我一直在寻找答案:Exceptionjava.lang.Exception以及ExceptionRuntimeException(由于Kotlin没有检查过的异常,有什么区别)?关于第二个问题:如果将来可以从Java调用Kotlin代码,我觉得最好使用RuntimeException(如果我错了,请纠正我)。

关于Exception,我发现Kotlin的版本只不过是原始Java typealias上的Exception:

@SinceKotlin("1.1") public actual typealias Exception = java.lang.Exception



拥有此类型别名的目的是什么?我看到的唯一好处是您不必 import java.lang.Exception,这使您的源代码更清晰。想知道这种类型别名背后是否还有其他动机?

最佳答案

我通常从RuntimeException扩展,其原因与您自己声明的原因相同,即kotlin中没有检查过的异常,但都可以。

kotlin-stdlib中存在typealiasjava.lang.Exception的原因是为了将您的kotlin代码与Java运行时/平台解耦。这是因为Jetbrains的目标是其他runtimes/platform。目的是在理论上使您应该能够以最小的努力将相同的kotlin代码编译或转译到不同的平台。

关于exception - 对Kotlin stdlib中的常见java.lang。* Exceptions进行类型别名的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54367880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com