2022년 10월 23일 일요일

Try,Catch,Runcatch

Try,Catch,Runcatch

Try , Catch, Runcatch

try, catch 대신 runcatch

kotlin 에서 기존의 try catch 도 가능하지만

val fruitName = try {

getRandomFruit()

} catch (throwable: Throwable) {

""

}

ex

return runCatching {

if (argParam.isEmpty()) {

    method?.invoke(null) as T?

} else {

    method?.invoke(obj, null) as T?

}

}.getOrNull()

코드가 정말 깔끔해진다

onSuccess, onFailure

기본적으로 성공,실패시에 처리할 로직을 지정할수있다.
runCatching{}.onSuccess{}.onFailture{}
이렇게 하는거 보다 fold할수를 써서 깔끔하게 코딩할수있다.

fold 함수

fold 함수를 쓰면 onSucccess, onFailure 를 좀더 깔끔하게 기술할수 있다. runCatching{}.fold 를 사용하면 성공,실패시에 추가로 처리할 부분을 지정할수있다.


runCatching{ "".toInt() }.fold{
   onSuccess = { it.toDouble() }
   onFailure = { Double.Nan}
}

map(결과치를 다른 값으로 가공해서 변환), recover(실패시에도 강제로 실행을 시키고 싶은 처리를 지정, 롤백처리등 할수있음)

0 comments:

댓글 쓰기