KotlinTips: getValueSafely 安全取值

作用

  • 安全取值,增加穩定性
  • 規避繁瑣的顯式try-catch處理

代碼

1
2
3
4
5
6
7
8
9
10
11
12
/**
 * 安全的獲取值的信息,其過程中發生異常會自動處理,返回null
 * getValueAction 取值操作,可能發生異常
 * */
inline fun <T> getValueSafely(getValueAction: () -> T?): T? {
    return try {
        getValueAction()
    } catch(t: Throwable) {
        t.printStackTrace()
        null
  }
}

驗證一番

1
2
3
4
5
6
7
8
9
10
11
12
fun testGetValueSafely() {
    val value1 = getValueSafely {
        1/ 0
  }

    val value2 = getValueSafely {
        1 + 1
  }

  value1.printLog()
  value2.printLog()
}

執行日誌

1
2
03-21 16:55:05.649  5072  5072 I KotlinTips: null
03-21 16:55:05.649  5072  5072 I KotlinTips: 2

關於 KotlinTips

KotlinTips是一個關於Kotlin編碼技巧的一個系列,希望通過輕量簡單的形式介紹能對大家有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章