728x90
반응형

코틀린의 예외 처리

코틀린의 예외처리는 자바나 다른 언어의 예외 처리와 비슷함
함수는 정상적으로 종료할 수 있지만 오류가 발생하면 예외를 던질 수 있음
// 조건이 참이면 number의 값이 초기화되고 거짓이면 초기화되지 않고 throw를 호출한다. 
val number = try {
    Integer.parseInt(reader.readLine())
} catch (e: NumberFormatException) {
    return // 예외가 발생한 경우 catch 블록 다음의 코드는 실행되지 않는다. 
}

try, catch, finally

자바 코드와 가장 큰 차이는 throws절이 코드에 없다는 점
자바에서는 함수를 작성할 떄 함수 선언 뒤에 throws IOException을 붙여야 함 (IOExption이 체크 예외이기 때문)
자바 7의 자원을 사용하는 try-with-resoucr는 어떨까?
코틀린은 그런 경우를 위한 특별한 문법을 제공하지 않음
하지만 라이브러리 함수로 같은 기능을 구현함

try를 식으로 사용

이전의 예제를 다시 살펴보기 👇
// 조건이 참이면 number의 값이 초기화되고 거짓이면 초기화되지 않고 throw를 호출한다. 
val number = try {
    Integer.parseInt(reader.readLine())
} catch (e: NumberFormatException) {
    return // 예외가 발생한 경우 catch 블록 다음의 코드는 실행되지 않는다. 
}

코틀린의 try 키워드는 if나 when과 마찬가지로 식임

따라서 try의 값을 변수에 대입할 수 있음

반응형
복사했습니다!