Elm:
에러 처리하기
어떻게 하나요:
Elm의 핵심 철학은 런타임 예외가 없다는 것입니다. 그래서 Elm은 Maybe
와 Result
와 같은 타입을 활용하여 오류를 다룹니다.
Maybe
시나리오의 경우:
safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
if denominator == 0 then
Nothing
else
Just (numerator / denominator)
-- 실행할 때:
safeDivide 10 2
--> Just 5
safeDivide 10 0
--> Nothing
Result
시나리오의 경우:
type Error = DivisionByZero
safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
if denominator == 0 then
Err DivisionByZero
else
Ok (numerator / denominator)
-- 그리고 사용할 때:
safeDivide 10 2
--> Ok 5
safeDivide 10 0
--> Err DivisionByZero
심층 분석
Elm의 타입 시스템은 엄격하여 조기에 오류를 발견하는 데 도움을 줍니다. 역사적으로 대부분의 언어들은 예외와 런타임 검사에 의존했지만, Elm은 컴파일 시간 보장을 선택했습니다. Result
와 같은 대안은 자세한 오류 정보를 제공하는 반면, Maybe
는 예/아니오 시나리오에서 더 단순합니다. Elm의 오류 처리는 개발자들이 모든 경로를 미리 고려하도록 장려하여 잊혀진 오류 케이스의 함정을 피하는 데 도움을 줍니다.
또한 보세요:
- 오류 처리에 관한 Elm 공식 가이드 섹션: 오류 처리 – 소개
- Elm
Maybe
문서: Elm – Maybe - Elm
Result
문서: Elm – Result