Scala
에서는 JVM 기반 언어의 최대 적인 NullPointerException을 functional하게 다룰 수 있는 다양한 수단을 제공하고 있다. 이러한 Exception handling 방법에는 Option
, Either
, Try
가 존재한다.
Scala에서는 Option
이라는 타입을 제공한다. 이 Option 타입은 값이 있으면 Some(value)
를 리턴하며, 값이 없으면 None
을 반환한다.
None
과 Some
이 모두 Option을 상속하므로 반환값이 some과 none이 된다. 이러한 Option은 2가지 특징을 가지고 있다.
Either는 Exception과 결과 값을 한 번에 받을 수 있는 타입이다.
either는 인자로 제대로 된 값이 들어오면 Right에 담고, 제대로 되지 않은 값이 들어오면 Left에 담는다.
이렇게 제대로된 값이 되면 Right
가 설정되는 것을 볼 수 있다.
자바에서처럼 try-catch 구문이 있지만, Try- match
도 존재한다.
Try에는 오류가 발생하지 않았다면 Success
내부에 값을 담아 보내고 그렇지 않다면 Failure
에 담아 보내준다.
위와 같이 쓸 수 있는데, case
로 Failure를 매칭하여 오류 메시지를 출력하도록 한 후 프로그램을 종료시킬 수 있다.