코틀린 기본기 - 예외

Janek·2023년 3월 14일
0

코틀린 기본기

목록 보기
3/3
post-thumbnail

해당 포스팅은 인프런에서 제공하는 최태현 님의 '자바 개발자를 위한 코틀린 입문'을 수강한 후 정리한 글입니다. 유료 강의를 정리한 내용이기에 제공되는 예제나 몇몇 내용들은 제외하였고, 정리한 내용을 바탕으로 글 작성자인 저의 언어로 다시 작성한 글이기에 서술이 부족하거나 잘못된 내용이 있을 수 있습니다. 그렇기에 해당 글은 개념에 대한 참고 정도만 해주시고, 강의를 통해 학습하시기를 추천합니다.

try catch finally

fun parseIntOrThrow(str : String): Int {
	try {
    	return str.toInt()
    } catch (e : NumberFormatException) {
    	throw IllegalArgumentException("${str}은 숫자가 아닙니다.")
    }
}

위의 예제와 같이 Java에서의try-catch문과 큰 차이는 없다. 단 타입이 뒤에 위치하고, new 키워드를 사용하지 않는다는 차이가 존재한다.

fun parseIntOrThrow(str : String): Int? {
	return try {
    	str.toInt()
    } catch (e : NumberFormatException) {
    	null
    }
}

또한 try-catch문 또한 표현식(expression)이기 때문에 구문 자체를 return할 수 있다.

Checked Exception & Unchecked Exdception

Kotlin에는 throws 구문이 없다. Checked ExceptionUnchecked Exception을 구분하지 않고 모든 예외를 Unchecked Exception으로 간주하기 때문이다.

try with resources

Kotlin에는 try with resources구문이 존재하지 않고 use라는 inline 확장 함수를 사용해야 한다. use함수 사용시 close는 내부에서 처리해준다.

fun readFile(path: String) {
	BufferedReader(FileReader(path)).use { reader -> 
    	println(reader.readLine())
    }
}
profile
만들고 나누며, 세상을 이롭게 하고 싶습니다.

0개의 댓글