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발생과 상관없이 무조건적으로 실행되는 곳 인데요.
Try->Catch->Finally 혹은 Try->Finally순으로 실행되게 되겠지요.
여기서는 보통 리소스나 디비의 커넥션을 close하게 됩니다.
이제 코드를 좀 보겠습니다.
아래 이미지와 같이, try, catch 그리고 finally를 사용합니다.
참고로, kotlin에서 try문은 하나의 Expression으로 return값을 가질 수 있는데요.
이 때 반환 값은 try에서의 마지막 expression이거나, catch에서의 마지막 expression입니다.
Java에서와 마찬가지로 아래와 같이 여러개의 Exception들에 대해서 잡을 수 있습니다.
2. Nothing타입
코틀린에서 아래와 같이 특정 조건에서 fail함수를 호출할 경우,
Nothing타입을 반환된다고 명시하는데요.
이는 어떤 타입을 반환한다는 의미보다는,
Exception이 나서 더이상 진행할 수 없거나
try, catch구문으로 익셉션 처리를 통한 진행이 될 수 있다는 것을 의미합니다.
이렇게 해서, Kotlin에서의 try, catch, 그리고 finally를 통한
기본적인 Exception처리에 대해서 정리해 보았습니다.
'Android 개발 > Debug, ADB, CrashLytics, LogCat' 카테고리의 다른 글
Crashlytics 구현해서 catch 한 Exception 로그 받기 # 에러 로깅 (0) | 2022.11.26 |
---|---|
자주 사용하는 ADB 명령어 정리 # logcat (0) | 2021.03.09 |
Kotlin Exception 처리 방법 # RunCatching 과 try, catch (1) | 2020.02.13 |
WindowManager$BadTokenException 대응하기 (0) | 2020.02.06 |
Android 디버깅 방법 및 Tip에 대한 정리 (0) | 2020.01.29 |
ArrayIndexOutOfBoundsException과 ViewHolder의 getAdapterPosition사용 (0) | 2019.10.18 |
RxJava2의 Global Error Handler 대응 #UndeliverableException (1) | 2019.10.16 |
APK 빌드 시 Lint found fatal errors 에러가 발생할 경우의 대응 (0) | 2019.10.06 |
ADB(Android Debug Bridge)를 맥 OS에서 사용하는 방법 (2) | 2019.09.01 |
Firebase의 CrashLytics를 Slack과 연동해서 알림받기 (1) | 2019.05.23 |
댓글