您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關深入淺析Kotlin中的異常,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Kotlin 基礎教程之異常
概述
在Kotlin-null的處理里提到的NPE,它就是一個異常。而,異常是程序運行過程中出現的錯誤。在Kotlin中,所有的異常都繼承于Throwable。對于每一個異常而言,它不僅僅包括異常的信息,還可以選擇性包括異常的原因,而其原因也是一個異常的實例。
拋出異常
使用 throw表達式拋出異常:
throw MyException("Hi There!")
捕獲異常
如果在函數內部拋出了異常(或者在函數內部調用的其他函數拋出了異常),這個函數將在拋出異常的地方結束。如果不希望函數結束,此時就必須捕獲這個被拋出的異常并處理這個異常。
在Kotlin中,要捕獲異常, 可以使用 try 表達式:
try { // 某些代碼 } catch (e: SomeException) { // 異常處理 } finally { // 可選的 finally 代碼段 }
注:
自定義異常
在Kotlin標準庫中封裝的異常類型,不可能會預見所有的可能碰見的異常情況,此時自己定義異常,來表示程序中可能出現的特定問題。
如果想自定義異常,就必須繼承現有的異常類,一般都繼承其異常情況相似的類,建立異常類型最簡單的方法就是使用編輯器產生默認的構造方法,這樣簡單而有效。
fun main(args: Array<String>) { var b: String? = null try { b?.length ?: throw MyExcepttion("b不能為空") } catch (ex: MyExcepttion) { println("ex: ${ex.message}") } catch (npe: NullPointerException) { println("npe: ${npe.message}") } finally { println("finally") } } public class MyExcepttion(override val message: String) : Throwable(){ } // Log ex: b不能為空 finally
try表達式
在Kotlin中try是一個表達式, 也就是說, 它可以有返回值.
val a: Int? = try { parseInt(input) } catch (e: NumberFormatException) { null }
try表達式的返回值, 要么是try代碼段內最后一個表達式的值,要么是 catch代碼段內最后一個表達式的值. finally代碼段的內容不會影響 try 表達式的結果值.
上述就是小編為大家分享的深入淺析Kotlin中的異常了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。