【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q
@Throws
是 Kotlin 中用來標記函數可能會拋出(throw)特定類型異常的註解。當你使用這個註解標記一個函數時,表示這個函數可能會丟出指定的異常類型。這有助於告訴其他開發者,在使用你的函式時要特別注意處理這類異常情況。
例如,我們常在讀取檔案或是解析 API 特定 Json 欄位資料,若沒有特別使用 try…catch/finaly 處理例外發生,在程式碼語法檢查階段 (checked exceptions),就會顯示相對應錯誤,以確保程式運行時的安全性。
檔名錯誤或檔案放置不正確的情況下,將會導致編譯錯誤或呼叫時的問題,需要特別留意:
在這個範例中 kotlinFun2
有加入 @Throws
註解,Java 呼叫此方法若沒有特別處理異常狀況,編譯時將會顯示錯誤。
//沒有設定 package 名稱,Java 無法順利呼叫使用
package com.teachable.hkt
import java.io.IOException
fun kotlinFun1() {
throw IOException()
}
@Throws(KotlinClassDemo::class)
fun kotlinFun2() {
throw KotlinClassDemo()
}
class KotlinClassDemo : Exception() {
override fun toString(): String {
return "發生自定義不可預期的錯誤"
}
}
fun main() {
kotlinFun1()
kotlinFun2()
}
package com.teachable.hkt;
public class JavaClassDemo {
public static void main(String[] args) {
MainKt.kotlinFun1();//正確
MainKt.kotlinFun2();//錯誤,要特別處理異常錯誤
}
}