Throws
所在位置是kotlin.Throws
,其相關用法介紹如下。
用法:
@Target([AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CONSTRUCTOR]) annotation class Throws
對於 JVM
此注解指示在編譯為 JVM 方法時函數應聲明哪些異常。
例子:
@Throws(IOException::class)
fun readFile(name: String): String {...}
將被翻譯成
String readFile(String name) throws IOException {...}
常見的
此注解指示當編譯為 Kotlin/JVM 和 Kotlin/Native 中的平台方法時,函數應聲明哪些異常。
對於原生
此注解指示函數在編譯為平台方法時應聲明哪些異常。
編譯到Objective-C/Swift 框架時,具有或繼承此注釋的非suspend
函數在Objective-C 中表示為NSError*
生成方法,在Swift 中表示為throws
方法。 suspend
函數的表示在完成處理程序中始終具有 NSError*
/Error
參數
當從 Swift/Objective-C 代碼調用的 Kotlin 函數引發異常時,該異常是 exceptionClasses 或其子類之一的實例,它會作為 NSError
傳播。其他到達 Swift/Objective-C 的 Kotlin 異常被視為未處理並導致程序終止。
注意:沒有 @Throws
的 suspend
函數僅將 kotlin.coroutines.cancellation.CancellationException 傳播為 NSError
。沒有 @Throws
的非 suspend
函數根本不會傳播 Kotlin 異常。
相關用法
- Kotlin Throws.<init>用法及代碼示例
- Kotlin Throws用法及代碼示例
- Kotlin Triple.<init>用法及代碼示例
- Kotlin TestTimeSource用法及代碼示例
- Kotlin Triple用法及代碼示例
- Kotlin TestTimeSource.<init>用法及代碼示例
- Kotlin associateBy用法及代碼示例
- Kotlin all用法及代碼示例
- Kotlin map用法及代碼示例
- Kotlin filterNot用法及代碼示例
- Kotlin reduceRight用法及代碼示例
- Kotlin Random.Default用法及代碼示例
- Kotlin Byte.inc用法及代碼示例
- Kotlin getValue用法及代碼示例
- Kotlin Double.dec用法及代碼示例
- Kotlin windowedSequence用法及代碼示例
- Kotlin contentToString用法及代碼示例
- Kotlin groupByTo用法及代碼示例
- Kotlin commonPrefixWith用法及代碼示例
- Kotlin MatchResult.Destructured用法及代碼示例
- Kotlin Delegates.notNull用法及代碼示例
- Kotlin ifBlank用法及代碼示例
- Kotlin filterNotTo用法及代碼示例
- Kotlin getOrPut用法及代碼示例
- Kotlin Duration.toString用法及代碼示例
注:本文由純淨天空篩選整理自kotlinlang.org大神的英文原創作品 kotlin.Throws。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。