본문 바로가기

기술면접

예외

사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류

 

 

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