코틀린 throw
-
[Kotlin] Nothing, UnitKotlin/Types 2021. 8. 16. 15:28
인터넷의 여러 글들을 읽어봤지만 Nothing과 Unit의 차이에 대해 정확하게는 모르겠고 어떠한 식으로만 써야하는지에 대해서만 안것 같다. 이해를 위해 글의 순서가 뒤죽박죽일 수 있다. Any는 모든 타입의 조상 타입 Nothing은 모든 타입의 서브 타입 Unit은 싱글톤 인스턴스로 자바의 void를 나타낸다. 함수가 리턴되지 않을 경우 Unit대신 Nothing을 쓰자. Nothing은 모든 타입의 서브 타입 fun test(): 조상타입{ return 자손인스턴스 } 자손인스턴스는 조상타입으로 캐스팅 가능하기 때문에 컴파일 에러가 발생하지 않는다. 마찬가지로 코틀린에서 throw 표현식은 Nothing타입이다. Nothing은 모든 타입의 서브타입이기 때문에 어떠한 타입으로도 캐스팅 될 수 있다...
-
[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의 가장 마지..