kotlin study day3
예외처리
kotlin의 예외처리 방식은 java 와 매우 유사합니다. 예외를 던지는 방법은 throw
키워드를 사용하며, new
를 사용하지 않습니다.
val input = "10"
if (input is String) {
throw TypeCastException("Not allowed string.")
}
///
val stream
try {
stream = connection.inputStream()
stream.read()
} catch (e: StreamCorruptedException){
stream = null
} finally {
stream.close()
}
java 에서의 차이점은 kotlin에서는 함수 뒤에 thows
키워드를 붙이지 않습니다. java에서는 체크 예외를 명시적으로 처리해야 했습니다. 따라서 stream 등을 사용 시 명시적으로 예외를 처리하도록 강제 됐으나, 클라이언트에서 취할수 있는 의미 있는 동작은 없었습니다. 그러나 kotlin에서는 체크와 언체크를 명시적으로 구분하지 않습니다. kotlin을 사용하면 불필요한 예외처리로 인해 스트레스 받지 않아도 됩니다.
표현식
kotlin은 표현식(exression)을 지원합니다. 일반적으로 java에서는 연산을 제외한 나머지는 문(statement) 였습니다. 표현식은 값을 만들며 다른식의 하위 요소로 계산에 참여할 수 있는 반면 문은 자신을 둘러싸고 있는 가장 안쪽 볼록의 최상위 요소로 존재하면 값을 만들어내지 못한다는 차이가 있습니다. If, try-catch 등에서 사용가능하며 심지어 함수 단위에서도 지원을 합니다.
if 표현식
val type = if (age < 17) "middle school" else if (age < 20) "high school" else "adult"
함수 표현식
fun getKoreanStyleName(firstName: String, lastName: String) = "${firstName} ${lastName}"
예외처리 표현식
var a = 10
var b = 0
val value = try {
(a / b)
} catch (e: Exception) {
0
}
댓글남기기