首页 > 解决方案 > Kotlin:如何在计算后调用 super?

问题描述

目前,我定义了一个自定义错误,如下所示:

class IsEvenError(message:String):Exception(message)

val n = 10;
if (n%2 == 0) {
   throw IsEvenError("${n} is even");
}

这样做的问题是,每次我想抛出它时,我都必须手动写出错误消息。

我希望能够将错误消息嵌入到类本身中,所以我可以执行以下操作:

throw IsEvenError(n); // this should throw an error saying "10 is even".

我该如何做到这一点?

标签: kotlinerror-handling

解决方案


您可以更改您IsEvenError以接受数字而不是字符串,并将格式化的字符串传递给Exception

class IsEvenError(number: Int) : Exception("$number is even")
fun main() : Unit = throw IsEvenError(10)

产生:

Exception in thread "main" IsEvenError: 10 is even
    at TestKt.main(Test.kt:2)

推荐阅读