그것은 개체 (https://himera.herokuapp.com 테스트) 그들 모두를 잡는다/JS 같습니다
cljs.user> (try (throw (js/Error. "some error")) (catch js/Object e (str "Caught: " e)))
"Caught: Error: some error"
cljs.user> (try (throw "string error") (catch js/Object e (str "Caught: " e)))
"Caught: string error"
cljs.user> (try (js/eval "throw 'js error';") (catch js/Object e (str "Caught: " e)))
"Caught: js error"
것은 게으른 시퀀스입니다 조심. 게으른 시퀀스에서 오류가 발생하면 try 함수를 종료 할 때까지 코드의 일부가 실행되지 않을 수 있습니다. 예를 들면 다음과 같습니다.
cljs.user> (try (map #(if (zero? %) (throw "some error")) [1]))
(nil)
cljs.user> (try (map #(if (zero? %) (throw "some error")) [0]))
; script fails with "Uncaught some error"
마지막 경우 map은 지연 시퀀스를 만들고 try 함수는이를 반환합니다. 그런 다음 repl 명령이 콘솔에 시퀀스를 인쇄하려고하면 오류가 평가되고 try 식 외부에서 오류가 발생합니다.
안녕 디마에서 또 다른 가능한 답을 발견하면
후안 – tangrammer