diff --git a/libraries/stdlib/jvm/runtime/kotlin/Throws.kt b/libraries/stdlib/jvm/runtime/kotlin/Throws.kt new file mode 100644 index 00000000000..356ec148a22 --- /dev/null +++ b/libraries/stdlib/jvm/runtime/kotlin/Throws.kt @@ -0,0 +1,25 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package kotlin + +/** + * This annotation indicates what exceptions should be declared by a function when compiled to a JVM method. + * + * Example: + * + * ``` + * @Throws(IOException::class) + * fun readFile(name: String): String {...} + * ``` + * + * will be translated to + * + * ``` + * String readFile(String name) throws IOException {...} + * ``` + */ +@SinceKotlin("1.4") +public actual typealias Throws = kotlin.jvm.Throws diff --git a/libraries/stdlib/src/kotlin/annotations/Throws.kt b/libraries/stdlib/src/kotlin/annotations/Throws.kt new file mode 100644 index 00000000000..16769cf16f4 --- /dev/null +++ b/libraries/stdlib/src/kotlin/annotations/Throws.kt @@ -0,0 +1,20 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package kotlin + +import kotlin.reflect.KClass + +/** + * This annotation indicates what exceptions should be declared by a function when compiled to a platform method + * in Kotlin/JVM and Kotlin/Native. + * + * @property exceptionClasses the list of checked exception classes that may be thrown by the function. + */ +@SinceKotlin("1.4") +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CONSTRUCTOR) +@Retention(AnnotationRetention.BINARY) +@OptionalExpectation +public expect annotation class Throws(vararg val exceptionClasses: KClass)