【Kotlin 入門指南】自定義異常處理

閱讀時間約 1 分鐘
【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q

自定義例外處理

在 Kotlin 中,自訂例外處理能讓你更精確地處理不同的錯誤狀況,並針對不同的錯誤類型進行適當的處理。學會如何建立自訂例外狀況並在程式中使用它們。能更有效地處理錯誤,寫出更穩健的 Kotlin 程式碼!

自定義例外狀況範例

我們可以建立自己的例外狀況類別,這些類別可以繼承自內建的例外類別,比如 Exception 或其子類別,來表示特定的錯誤情況。讓我們看一個範例:

// 自定義例外狀況類別
class InputDataError : IllegalArgumentException()

class NetworkError : RuntimeException()

在這個範例中,InputDataError 繼承自 IllegalArgumentException,而 NetworkError 繼承自 RuntimeException。這些自訂例外類別可以用來表示不同類型的錯誤,讓我們可以更有針對性地處理這些錯誤。

使用自定義例外範例

接下來,讓我們看一個示範如何在程式中使用自訂例外。假設我們有一個名為 loginAPI() 的函數,我們希望當出現特定錯誤時拋出自訂例外:

fun loginAPI() {
// 在特定情況下拋出自訂例外
throw InputDataError()
}

loginAPI() 函數中,當特定條件不符時,我們拋出了 InputDataError 這個自訂例外。

現在,讓我們在 main() 函數中使用 try-catch 區塊來處理這些自訂例外:

fun main() {
try {
loginAPI()
} catch (e: Exception) {
when (e) {
is InputDataError -> println("無效的資料")
is NetworkError -> println("網路例外")
}
}
}

在這個範例中,我們呼叫了 loginAPI() 函數並在 try 區塊中執行。如果 loginAPI() 拋出了例外,則 catch 區塊會捕捉到這個例外並進行處理。透過 when 表達式,我們可以根據不同的例外狀況做出相對應的處理,例如這裡分別處理了 InputDataErrorNetworkError

avatar-img
10會員
232內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液