#kotlin #error-handling
#kotlin #обработка ошибок
Вопрос:
В настоящее время у меня есть пользовательская ошибка, определенная следующим образом:
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:
Вы можете изменить свой 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)