변명은 만개 결과는 한개

[Kotlin] null (2) : null 예외처리 본문

공부/Kotlin

[Kotlin] null (2) : null 예외처리

노마십가 2020. 11. 17. 22:00
728x90
반응형

null 예외처리

Elvis Operator

Elvis Operator -> ?:
java 의 삼항연산자에서 ?: 를 따로 쓰는것과 비교해서, 붙어있음

var temp: String? null
// 1. if / else 사용 가능
// 2. safe call 사용 가능

// 3. Elvis Operator
val size = temp?.length ?: 0
// output : 0 | length

Elvis Operator 유용하게 사용하기

// JAVA
String temp = null;
textView.setText(temp != null ? temp : "");
// KOTLIN
val temp: String? = null
// textView.text = if (temp != null) temp else ""
textView.text = temp ?: ""

NPE(Null Pointer Exception)

NPE 발생시키는 방법

  1. !! Operator 사용

null인 경우 자동으로 NPE을 발생시킨다

val temp: String? = null
val size = temp!!.length    // npe 발생

try/catch 가 필요한 경우 사용하면 됨.

val size = try {
    temp!!.length
} catch (e: NullPointerException) {
    0
}
  1. Elvis Operator 사용
val temp: String? null
val size = temp?.length ?: throw NullPointerException("temp is null")

이러니저러니해도, Java 와 Kotlin 을 같이 쓸때는 주의해야함

728x90
반응형