Kotlin: как вызвать super после некоторого вычисления? - PullRequest
0 голосов
/ 19 апреля 2019

В настоящее время у меня есть пользовательская ошибка, определенная так:

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 Ответ

6 голосов
/ 19 апреля 2019

Вы можете изменить 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...