사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류
1. 일반 예외(Exception) → Checked Exception
- 컴파일 시점에서 예외을 catch하는지 검사 → try/catch 하여 해결
2. 실행 예외(Runtime Exception) -> Unchecked Exception
- 컴파일 시점에서 예외을 catch하는지 검사X, 예외 발생할 것인지 여부 판단 X
- 런타임 시에 발생하는 예외
3. 실행 예외 종류
- NullPointerException
- 해당 객체가 null인 상태에서의 접근을 했을 때 발생
fun main() {
var nullableString: String? = null
// 아래 줄에서 nullpointer 예외 발생 가능성 있음
val length: Int = nullableString.length // 에러 발생!
println("문자열의 길이: $length")
}
- ArrayIndexOutOfBoundsException
- 배열에서 할당된 배열의 인덱스 범위 초과할 경우 발생
- NumberFormatException
- 문자열로 되어있는 데이터를 숫자로 변경하는 경우 발생
- ClassCastException
- 부모 클래스를 하위 클래스로 변환하면 오류
- 객체를 부모 클래스로 형변환하려 할 때 실제 객체가 그 부모 클래스의 하위 클래스가 아니라면 발생
fun main() {
val parent: Any = "Hello, World!"
// 실제로 parent는 String 타입이지만 Any 타입으로 선언되어 있음
// 이 경우 String으로 형변환이 실패하고 ClassCastException이 발생함
val child: String = parent as String
println("문자열 값: $child")
}
'기술면접' 카테고리의 다른 글
Kotlin에서 Null 처리 방법 (0) | 2024.01.19 |
---|---|
Java와 Kotlin 차이 (0) | 2024.01.19 |
비동기 프로그래밍 (1) | 2024.01.04 |
Kotlin 정적 타입 언어 (1) | 2024.01.04 |