Exception 在Kotlin stdlib中对公共java.lang.*异常进行类型别名处理的目的是什么?

Exception 在Kotlin stdlib中对公共java.lang.*异常进行类型别名处理的目的是什么?,exception,kotlin,Exception,Kotlin,最近,我想知道如果我想创建特定于应用程序的异常,我应该在Kotlin中继承哪个类 我注意到我可以继承这两种类型:Kotlin自己的Exception类型和java.util.Exception。 因此,我一直在寻找答案:Exception或java.lang.Exception和Exception或RuntimeException(因为Kotlin没有检查过的异常,有什么区别)?关于第二个问题:如果将来可以从Java调用Kotlin代码,我觉得还是使用RuntimeException更好(如果我

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

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

关于
异常
我发现Kotlin的版本只不过是原始Java
异常
上的
类型别名

@SinceKotlin(“1.1”)公共实际类型别名Exception=java.lang.Exception


使用此typealias的目的是什么?我看到的唯一优势是您不必导入java.lang.Exception,这使您的源代码更简洁。想知道这种类型别名背后是否还有其他动机?

我通常从
RuntimeException
扩展,原因与您自己所说的相同,即kotlin中没有选中的异常,但两者都可以


kotlin stdlib中存在
java.lang.Exception
typealias
的原因是将kotlin代码与java运行时/平台解耦。这是因为喷气式飞机的目标是对方。其目的是,从理论上讲,您应该能够以最小的工作量将相同的kotlin代码编译或传输到不同的平台

我从kotlin
RuntimeException
扩展,原因正是您所说的,kotlin中没有检查过的异常。我假设有
java.lang.Exception
typealias
将kotlin代码与java运行时解耦。这是有道理的,因为我们知道jetbrains针对的是其他运行时和本机代码。^这就是答案,这样任何引用Kotlin版本的代码都可以编译到多个平台。是的,这正是-@Dean为什么不回答这个问题?