Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- rxjava
- 일본어문법
- jlpt
- webflux
- KotlinInAction
- Android
- 진짜학습지후기
- github
- n3문법
- blog
- 진짜일본어
- 안드로이드
- 인공지능
- GIT
- errorhandling
- coroutine
- 코틀린
- ai
- pullrequest
- PR
- 책추천
- 학습지
- 진짜학습지
- CustomTab
- posting
- 일본어기초
- Kotlin
- 책리뷰
- androidstudio
- suspend
Archives
코딩하는 개굴이
[Kotlin] Kotlin <--> Java 의 예외처리 (+ 지정 키워드 escape 하여 사용하기) 본문
반응형
Java 의 예외 처리
Java 의 경우에는 아래와 같이 try catch 로 특정 checked exception 을 걸어 처리하도록 필수하고 있다.
public class JavaThrow {
public void throwIOException() throws IOException {
throw new IOException();
}
}
public static void main() {
JavaThrow javaThrow = new JavaThrow();
try {
javaThrow.throwIOException();
} catch (IOException e) { //checked Exception
e.printStackTrace();
}
}
Kotlin 의 예외 처리, Java 의 Exception 처리하기
코틀린에서는 checked exception 이 존재하지 않기 때문에, 코드 작성 시에 아래와 같이 try catch 등의 별도 처리를 강제하지는 않는다.
class KotlinThrow {
fun throwIOException() {
throw IOException()
}
@Throws(IOException::class)
fun throwsIOExceptionWithAnnotation() {
throw IOException()
}
}
fun main() {
val javaThrow = JavaThrow()
javaThrow.throwIOException()
val kotlinThrow = KotlinThrow()
kotlinThrow.throwIOException()
}
Java 에서 Kotlin 의 예외 처리하기
그리고, 코틀린으로 작성된 throw Exception 이 가능한 함수들의 처리 또한 자바에서 호출 시 try/catch 의 처리가 강제되지 않는다.
상단의 KotlinThrow 를 Java 의 main 함수 하위에서 호출해보자.
public static void main() {
JavaThrow javaThrow = new JavaThrow();
try {
javaThrow.throwIOException();
} catch (IOException e) { //checked Exception
e.printStackTrace();
}
//KotlinThrow 클래스의 호출
KotlinThrow kotlinThrow = new KotlinThrow();
kotlinThrow.throwIOException();
//try catch 를 감싸려하면 에러가 발생하게 되는데 그 이유는 throws 를 사용하지 않고
//코틀린에서는 throw 를 사용하여 별도의 예외 전파를 사용하지 않고 있기 때문이다.
//따라서, throws 어노테이션을 별도로 사용할 경우에만 try/catch 로 전파를 받을 수 있다.
//throws annotation 을 붙인 throwsIOExceptionWithAnnotation 사용
try {
kotlinThrow.throwsIOExceptionWithAnnotation();
} catch (IOException e) {
e.printStackTrace();
}
}
+ Kotlin 의 지정 키워드를 Java 에서 사용할 경우
만일 Java 에서 함수 이름을 is, in 등 Kotlin 에서 기본으로 지정된 키워드로 사용하고 있을 경우는 어찌 사용해야할까?
Kotlin 에서는 in 과 같이 back tic 으로 감싸 escape 하여 사용할 수 있다.
do while, when 등 기본적으로 사용되는 단어들에 대해 escape 를 할 수 있기 때문에 자바에 비해 더 유연성 있게 사용할 수 있다.
fun main() {
val sampleClass = SampleClass()
sampleClass.`in`
}
반응형
'안드로이드 > KOTLIN' 카테고리의 다른 글
코드로 Coroutine 동작 파악하기 (0) | 2023.09.17 |
---|---|
[Kotlin] Coroutine Dispatchers.Main 의 동작 순서 보장 (feat. Dispatchers.Main.immediate) (1) | 2023.06.18 |
[Kotlin] Kotlin <--> Java 클래스의 Getter, Setter 호출하기 (0) | 2023.05.07 |
[Kotlin] Kotlin의 기본 한번에 요약하기 (0) | 2023.05.02 |
[Kotlin] KtLint 로 클린한 코드 작성하기 (0) | 2023.01.30 |
Comments