Kotlin:经过一些计算后如何调用super?

时间:2019-04-19 13:43:07

标签: kotlin error-handling

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

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".

我如何做到这一点?

1 个答案:

答案 0 :(得分:6)

您可以将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)