Throws
Требования к платформе и версии: Common (1.4)
expect annotation class Throws(val exceptionClasses: KClass<out Throwable>)
Эта аннотация указывает, какие исключения должны быть объявлены функцией при компиляции в метод платформы в Kotlin/JVM и Kotlin/Native.
Требования к платформе и версии: JVM (1.4)
actual typealias Throws = kotlin.jvm.Throws
Эта аннотация указывает, какие исключения должны быть объявлены функцией при компиляции в метод JVM.
Пример:
@Throws(IOException::class)
fun readFile(name: String): String {...}
будет преобразовано в
String readFile(String name) throws IOException {...}
Требования к платформе и версии: Native (1.4)
actual annotation class Throws(val exceptionClasses: KClass<out Throwable>)
Эта аннотация указывает, какие исключения должны быть объявлены функцией при компиляции в метод платформы.
При компиляции в фреймворк Objective-C/Swift функции, не являющиеся suspend, которые имеют эту аннотацию или наследуют её, представляются как методы Objective-C, создающие NSError*, и как методы Swift throws. Представления функций suspend всегда содержат параметр NSError*/Error в обработчике завершения.
Когда функция Kotlin, вызванная из кода Swift/Objective-C, выбрасывает исключение, являющееся экземпляром одного из exceptionClasses или их подклассов, оно передаётся как NSError. Другие исключения Kotlin, возникающие в Swift/Objective-C, считаются необработанными и приводят к завершению программы.
Примечание: функции suspend без @Throws передают только kotlin.coroutines.cancellation.CancellationException как NSError. Функции, не являющиеся suspend и не имеющие @Throws, вообще не передают исключения Kotlin.
Свойства
Требования к платформе и версии: Common (1.4), Native (1.4)
expect val exceptionClasses: Array<out KClass<out Throwable>>
список классов проверяемых исключений, которые могут быть выброшены функцией.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-throws/