Exception Kotlin-引发自定义异常
如何在Kotlin中抛出自定义异常?我没有从医生那里得到那么多 在文档中,描述了每个异常需要什么,但我如何具体实现它?如下: 实施 用法Exception Kotlin-引发自定义异常,exception,kotlin,Exception,Kotlin,如何在Kotlin中抛出自定义异常?我没有从医生那里得到那么多 在文档中,描述了每个异常需要什么,但我如何具体实现它?如下: 实施 用法 fun main(args:Array){ 在线程“main”中引发CustomException(“错误!”)/>>>异常 }//>>>自定义异常:错误! 有关更多信息:请记住一件事:如果您使用IntelliJ IDE,只需简单地复制/粘贴Java代码即可将其转换为Kotlin 现在来回答你的问题。如果要创建自定义异常,只需扩展异常类,如: class T
fun main(args:Array){
在线程“main”中引发CustomException(“错误!”)/>>>异常
}//>>>自定义异常:错误!
有关更多信息:请记住一件事:如果您使用IntelliJ IDE,只需简单地复制/粘贴Java代码即可将其转换为Kotlin 现在来回答你的问题。如果要创建自定义异常,只需扩展异常类,如:
class TestException(message:String): Exception(message)
然后像这样扔:
throw TestException("Hey, I am testing it")
大多数答案都忽略了一个事实,即Exception有4个构造函数。 如果您希望能够在正常异常工作的所有情况下使用它,请执行以下操作:
class CustomException : Exception {
constructor() : super()
constructor(message: String) : super(message)
constructor(message: String, cause: Throwable) : super(message, cause)
constructor(cause: Throwable) : super(cause)
}
这将覆盖所有4个构造函数,只传递参数。我想官方指南对此描述得很好。或者我理解错了吗?好吧,现在明白了…您忘记将消息传递给异常构造函数:)我发现您只需要在var:)之前添加override关键字即可@AlexanderRomanov
Exception
类的构造函数为空。但如果基类支持的话,将消息传递给基类是很好的。为什么不使用val消息而不是var呢?参数没有理由是可变的。为什么我们需要覆盖这里的消息?这个答案可能应该排名更高。我的代码中正好有这个用例,而你是一个救星。我不需要将类型Throwable
更改为Exception
,这个答案真的很有帮助。@loaded02对不起,你能详细说明一下吗?在什么情况下,如果异常不起作用,您需要一个一次性的?异常扩展了Throwable,因此任何异常都可以是Throwable@DownloadPizza你是对的。不需要改变。
throw TestException("Hey, I am testing it")
class CustomException : Exception {
constructor() : super()
constructor(message: String) : super(message)
constructor(message: String, cause: Throwable) : super(message, cause)
constructor(cause: Throwable) : super(cause)
}