반응형 exception6 Coroutine Async와 await 사용시 Exception Handling 방법 정리#Kotlin Coroutine에서 비동기 코드에서의 반환 값이 필요할 때,코루틴 빌더인 async와 await()함수를 사용합니다. 하지만 이 API들은 Exception을 핸들링 할 때 주의가 필요한데요.오늘은 async와 await() 사용시,Exception을 핸들링 하는 방법에 대해 알아보겠습니다. 1. async 예외 전파 이해하기코루틴 빌더인 async와 await함수를 사용시,Exception핸들링을 하려면,코루틴의 예외 전파방식에 대해 이해해야 하는데요. 먼저 보아야 할 것이,코루틴 빌더인 async의 리턴타입입니다.아래와 같이 Deferred타입인데요.이 타입은 아래 보이는 것처럼, Job을 상속받고 있습니다. 코루틴 빌더인 async는,Job을 통해 부모-자식 관계가 형성되구요.Exception.. 2025. 1. 13. Crashlytics 구현해서 catch 한 Exception 로그 받기 # 에러 로깅 CrashLytics는 앱이 Crash가 났을경우에 알림을 주는 역할을 해 줍니다. 마켓에 앱을 출시했다면, 필수로 사용해야 한다고 할 수 있는데요. Crash를 알려주는 주 기능이외에도, 다양한 기능들이 있지만, 그중에서도 catch한 Exception에 대해서도 알림을 받는 것이 특히 유용합니다. 오늘은 이 방법에 대해서 정리해 보겠습니다. 만약 Firebase내에 현재 앱의 project가 생성되어 있지 않다면, 먼저 아래 링크를 참조해서 프로젝트를 생성해 주세요. (https://firebase.google.com/docs/android/setup) 1. CrashLytics 라이브러리 implementation 1-1. project level의 build.gradle 먼저 project 레벨 .. 2022. 11. 26. Coroutine을 이용해 Parallel한 네트워크 호출 #Kotlin Kotlin의 Coroutine을 이용하여서 NetworkCall을 할 경우, 동시에 2개 혹은 3개의 네트워크 API를 호출해야 할 경우 어떻게 해야 할까요? 당연히 A를 먼저하고 끝나면 B를 하는 Sequential한 방법은 사용하지 않을 것이구요. Parallel하게 동시에 호출한 다음 return된 값들을 이용할 텐데요. 오늘은 이것의 방법에 대해서 정리해 보도록 하겠습니다. 1. async와 successHandler Paralllel하게 호출하여 비동기로 결과 값을 받기 위해서는, async 코루틴 빌더를 사용하여야 하는데요. 1-1. async와 successHandler의 사용 동시에 2개의 호출을 한다고 가정해 보겠습니다. 임의의 successHandler를 만들어서 async빌더에서 r.. 2020. 3. 28. Kotlin에서 try catch finally로 처리하는 Exception Kotlin에서도 Java에서처럼 try catch finally를 이용해서 Exception들을 처리할 수 있는데요. 오늘은 그 기본적인 방법에 대해서 정리해 보도록 하겠습니다. 1. Try, Catch 그리고 Finally Try는 Exception 발생이 예상되는 코드를 감싸는 블록이고, Catch는 Exception이 발생되었을 때 실행되는 블록입니다. Try블록에서 Exception이 발생하고 , Catch블록에서 해당 Exception처리를 해주면, 앱은 Crash하지 않고, 다음 코드를 실행시켜 줍니다. (물론 Catch에서 잡아주지 못한 Exception이 발생한다면 그 때는 Crash가 나겠지요. Try로 감싼다고 무조건 Crash를 막지는 못 합니다.) Finally는 Exception.. 2020. 1. 28. RxJava2의 Global Error Handler 대응 #UndeliverableException 오늘은 RxJava2의 Global Error Handler에 대해서 정리해 보도록 하겠습니다. 이 글은 UndeliverableException이 발생하는 케이스에 대응하는 방법이기도 한데요. 재현하기가 쉽지만은 않은 케이스입니다. 하지만, 프로덕트로 Playstore에 출시하게 되고, 다양한 기기와 상황에서에서는 언젠가는 마주치게 되는 Exceptoin이기도 합니다. 1. 문제 아래와 같이 이미 cancel되었거나 dispose되어서 consumer가 갈 곳이 없다고 나와있습니다. 무슨 Exception이길레, 해결할 방법에 대한 link까지 제공해 주고 있는 것일까요? 이것은 RxJava2로 업그레이드 하면서, 달라진 ErrorHandler를 적용하지 않아서 발생한 문제인데요. 이것이 무엇이고 왜 .. 2019. 10. 16. Callable 과 Runnable 뭐가 다른가요? 이전 글에서 Thread에 대해 정리하면서,Runnable에 대해서도 정리하였었는데요. 오늘은 Callable과 Runnable을 비교해 보도록 하겠습니다. 참고로 이전에 Runnable을 정리한 글은, 아래링크를 참조해 주세요.>>> 안드로이드의 Multi Thread, Runnable, Looper 그리고 Handler 2017. 3. 18. 이전 1 다음