문제

아래 클래스와 같은 예외를 사용하려고 노력하고 있지만 kivetel 메소드를 호출 할 때 항상 프로그램이 실패합니다.나는 그것이 재 시도를 불러 일으킬 것이라고 생각한다.그러나 "y_above_zero"Postcond 위반으로 실패합니다.

class
KEYWORDS
create
    make
feature
    y:INTEGER

make
do
end

kivetel
do
ensure
    y__above_zero: y > 0
rescue
    y := 20
    retry
end
end
.

도움이 되었습니까?

해결책

이것은 EiffelStudio, 즉 디버거 아래에서 실행할 때 예상되는 동작입니다. 외부로 실행하면 콘솔에서 인스턴스를 알지 못하면 실행이 Rescue 절을 통과하고 재시도 가보고 예상대로 계속됩니다.

그러나 디버거에서는 어설 션 위반 또는 예외가있을 때마다 디버거가 그것을 잡고 대화 상자를 팝업합니다.

(참고 이것은 특정 종류의 예외를 무시할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top