Оператор throw
Оператор throw позволяет вручную создать и выбросить исключение в Kotlin.
При выполнении этого оператора нормальный поток выполнения программы прерывается,
и управление передается ближайшему блоку catch, который может обработать
данное исключение. Если подходящий блок не найден, программа завершается с ошибкой.
Синтаксис
throw Exception(message: String?)
Где Exception - это тип исключения (может быть любым классом, унаследованным от Throwable),
а message - необязательное сообщение об ошибке.
Пример
Простой пример генерации исключения:
fun checkAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("Age cannot be negative")
}
println("Age is $age")
}
checkAge(-5)
Результат выполнения кода:
Exception in thread "main" java.lang.IllegalArgumentException: Age cannot be negative
Пример
Создание и выброс собственного исключения:
class MyException(message: String) : Exception(message)
fun process(value: Int) {
if (value > 100) {
throw MyException("Value is too large")
}
println("Processing value: $value")
}
process(150)
Результат выполнения кода:
Exception in thread "main" MyException: Value is too large
Пример
Использование throw в выражении:
val result = if (true) {
"Success"
} else {
throw RuntimeException("Failure")
}
println(result)
Результат выполнения кода:
String "Success"
Пример
Перехват исключения с помощью try-catch:
try {
throw ArithmeticException("Division by zero")
} catch (e: ArithmeticException) {
println("Caught exception: ${e.message}")
}
Результат выполнения кода:
String "Caught exception: Division by zero"