Vintage appMaker의 Tech Blog

[kotlin] 예외처리 간소화 본문

Source code or Tip/Android(Java, Kotlin)

[kotlin] 예외처리 간소화

VintageappMaker 2021. 5. 6. 11:53

kotlin은 try catch문을 권장하지 않는다.

 

코드의 가독성 및 무결성에 문제가 있다는 철학을 가지고 있기 때문이다. 그럼에도 불구하고 try catch문이 필요할 경우가 종종 생긴다. 주로 서버와 통신을 할 경우이다. 데이터가 100% 옳다고 할 수 없는 상황이기 때문이다. 그럴 경우는, try catch를 사용해야 한다. 그럴경우, try catch를 다음과 같이 간소화시켜 사용하면 유용하다. 전역적인 에러 핸들링과 지역적인 에러 핸들링을 편리하게 사용할 수 있다. 

 

fun main() {

    // 에러처리 안함
    SafeHandler({
        val sum = 1 / 0
    })

    // 에러처리 함
    SafeHandler({
        var name : String? = null
        print (name!!.length)
    }, {
        e-> print("👨‍✈️ ${e} 입니다")
    })
}

fun SafeHandler( fnCode : () -> Unit, fnError : ( (String) -> Unit)? = null  ){
    try{
        fnCode()
    } catch ( e: Exception){
        if (fnError != null ) {
            fnError(e.toString())
        } else {
            // [TODO] 디폴트로 하고자 하는 기능
        }
    }
}

 

Comments