MIT 스키마에서 예외를 발생시키고 처리하는 방법은 무엇입니까? 같은MIT 스키마의 예외 처리
뭔가 [가 작동하지 않습니다]
((< val 0) (raise "-ve value"))
MIT 스키마에서 예외를 발생시키고 처리하는 방법은 무엇입니까? 같은MIT 스키마의 예외 처리
뭔가 [가 작동하지 않습니다]
((< val 0) (raise "-ve value"))
를 찾을 수있는 가장 좋은 장소는 MIT/GNU Scheme documentation on error handling입니다.
문서는 답을 제공한다,하지만 코드 샘플, 그래서 여기에 하나입니다 :
여기(define (handler x)
(display "Handling Error: ")(display x)(newline)
(restart 1))
우리가 (문서가 "조건"부르는) 오류를 표시하고 와 아무것도하지 .
는 모든 조건이 어떻게이 기능을 핸들하게하려면 :(bind-default-condition-handler '() handler)
을 또는 당신은 단지 하나 개의 코드 블록을 포장 할 수 있습니다 dvingo는 지적
(bind-condition-handler '() handler (3 4))
는, 워드 프로세서는 어떤 예를 그렇게 표시되지 않습니다 다음은 "오류"내장 특수 형식 (적어도 MIT 체계에서)을 사용하는 또 다른 예제입니다 (최소한 MIT 체계에서).
(define (errors-if-zero x)
(if (= x 0)
(error "x is 0")
x))
dkinzer, 코드 의도적으로 잘못되어 예외가 처리 될 수 있습니다. – dvingo