[Scala] 예외 처리

smlee·2023년 8월 31일
0

Scala

목록 보기
29/37
post-thumbnail

Scala에서는 JVM 기반 언어의 최대 적인 NullPointerException을 functional하게 다룰 수 있는 다양한 수단을 제공하고 있다. 이러한 Exception handling 방법에는 Option, Either, Try가 존재한다.

1. Option

Scala에서는 Option이라는 타입을 제공한다. 이 Option 타입은 값이 있으면 Some(value)를 리턴하며, 값이 없으면 None을 반환한다.


NoneSome이 모두 Option을 상속하므로 반환값이 some과 none이 된다. 이러한 Option은 2가지 특징을 가지고 있다.

  1. Type Safety : Option으로 감싼 값을 매개변수를 통해 전달하여 타입 안정성을 보장
  2. Functionally aware : 버그를 적게 생성하는데 도움이 되는 함수형 프로그래밍 방법 제공하며, 연속적으로 계산되는 상황에서 안정적으로 실행된다.

2. Either

Either는 Exception과 결과 값을 한 번에 받을 수 있는 타입이다.

either는 인자로 제대로 된 값이 들어오면 Right에 담고, 제대로 되지 않은 값이 들어오면 Left에 담는다.

이렇게 제대로된 값이 되면 Right가 설정되는 것을 볼 수 있다.

Try

자바에서처럼 try-catch 구문이 있지만, Try- match도 존재한다.

Try에는 오류가 발생하지 않았다면 Success 내부에 값을 담아 보내고 그렇지 않다면 Failure에 담아 보내준다.

위와 같이 쓸 수 있는데, case로 Failure를 매칭하여 오류 메시지를 출력하도록 한 후 프로그램을 종료시킬 수 있다.

0개의 댓글