2019年6月14日 星期五

Kotlin 的 try catch, if else, when( ) { else } 等區塊敘述與函數

例外處理一直是很煩瑣的任務, 要讓程式碼看起來簡潔易懂, 可以利用 kotlin 的 try-catch陳述函數, 也可以搭配 if else, when 等條件陳述函數去處理, 只要把結果擺在區塊內最後一行就可以回傳, 而且回傳的資料型態必須與描述宣告的(statement)一致, 例如 try expression(函數):
  val a: Boolean = try { TaskMayThrowException() ;     true } catch (e: typeName) { false }
意思是說: 嘗試執行任務, 正常執行最後要回傳 true, 否則當產生不可預期事件時回傳 false, 詳情參考: https://kotlinlang.org/docs/reference/exceptions.html
要注意的是:
1. 必需用雙括號將程式碼分別圈出 try 與 catch 的程式區塊
2. 要接收的變數或常數, 要宣告資料型態(包含 catch 的接收參數), 主要是讓回傳資料型態一致
3. 無論有無發生例外, 都會執行 finally { } 程式區塊, 但 finally 區塊並不會回傳最後敘述值
4. try 區塊必須跟隨至少一個 catch 區塊, 或是接續 finally 區塊(可以省略 catch 區塊)處理
5. 描述宣告(statement)不會取值, 但陳述函數(expression)會取最後一行結果當函數值
把 if { }  else { }, when(condition ) {  else { }   } 等當成陳述函, 詳情參考:
https://kotlinlang.org/docs/tutorials/kotlin-for-py/conditionals.html

沒有留言: