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:
댓글 쓰기