-
[Kotlin] ExceptionKotlin/Exception 2021. 8. 14. 13:59
-- try catch에도 null체크가 엄격하다.
try블록안에서 선언된 변수는 try블록에서만 사용가능하기 때문에 main함수 scope에 변수를 선언하였다.
try블록에서는 항상 예외가 발생할 수 있기 때문에 try문에서 초기화를 해도 예외로 인해 초기화 부분이 실행 되지 않을 수도 있다.
그렇기 때문에 try블록에서 초기화를 한다해도 catch나, finally에서 변수를 사용할 수 없다.
--코틀린의 try는 표현식이다( 값을 return한다 )
try블록의 마지막 표현식, catch블록의 마지막 표현식이 리턴될 값에 해당된다.
finally절은 표현식의 리턴에 영향을 주지 않는다.
예외가 발생하지 않으면 try의 가장 마지막 expression이 대입되고
예외가 발생하면 catch의 가장 마지막 expression이 대입된다.
--Kotlin does not have checked exceptions.
코틀린은 checked exceptions가 없다.
자바의 checked exceptions이 발생하는 메서드등등을 사용할 떄 예외처리를 해놓지 않으면 컴파일이 되지 않는다.
코틀린은 checked exception에 예외처리를 하지 않아도 되게 되었다.
출처: https://tourspace.tistory.com/101 [투덜이의 리얼 블로그]
이는 Java의 대체적인 코드 사용 패턴을 볼때 checked exception을 강제한다고 해서 모두 예외처리를 하기보단 보통 // 으로 무시하거나, 추가적으로 처리하지 않기 때문입니다.
따라서 실용성을 강조하는 코틀린은 이런것들을 과감하게 생략합니다.
--코틀린에서 throw는 표현식이고 Nothing타입을 가진다. 타입을 가지기 때문에 Elvis operator의 우변에 위치할수 있다.
https://hellose7.tistory.com/40