From f757881f222a5fb33e98ac3679433f6691adf5b2 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 22 Jan 2014 18:55:44 +0400 Subject: [PATCH] [throws] annotation added to the standard library --- libraries/stdlib/src/kotlin/JLangJVM.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libraries/stdlib/src/kotlin/JLangJVM.kt b/libraries/stdlib/src/kotlin/JLangJVM.kt index 6f72fc37919..e045ab4955f 100644 --- a/libraries/stdlib/src/kotlin/JLangJVM.kt +++ b/libraries/stdlib/src/kotlin/JLangJVM.kt @@ -2,9 +2,25 @@ package kotlin import java.lang.Class import java.lang.Object +import java.lang.annotation.* import jet.runtime.Intrinsic +/** + * This annotation indicates what exceptions should be declared by a function when compiled to a JVM method + * + * Example: + * + * throws(javaClass()) + * fun readFile(name: String): String {...} + * + * will be translated to + * + * String readFile(String name) throws IOException {...} + */ +Retention(RetentionPolicy.SOURCE) +public annotation class throws(vararg val exceptionClasses: Class) + [Intrinsic("kotlin.javaClass.property")] public val T.javaClass : Class get() = (this as java.lang.Object).getClass() as Class