실패

나루 위키
둘러보기로 가기 검색하러 가기

캡슐에서 코드를 실행한 결과로 실패가 발생할 수 있다. 실패는 naru core Failure 타입으로 표현되며, 확장 가능하다.

x: nat := ...
y: nat := ...

-- `x - y`가 OutOfBound 실패를 발생시킬 수 있다.
if x - y == 0 {
    -- 명시적으로 OutOfBound 실패를 발생시킨다.
    fail(OutOfBound("x - y == 0"))
}

실패는 명백한 버그나 프로그래머가 예상하지 못한 상황을 다룬다는 점에서 결과 타입과 다르다. 따라서 실패는 어디서나 발생할 수 있으며, 실패를 처리하는 유일한 방법은 캡슐로 실패가 발생할 수 있는 코드를 가두는 것 뿐이다.