다음은 REPL에서 작동합니다. 데이터베이스가 다운 된 경우 맵을 다시 얻습니다.다른 함수에 대해 동일한 예외를 효율적으로 잡는 방법은 무엇입니까?
(try
(insert-table "db" "table" {:id 1 :text "text"})
(catch Exception e {:err "can't connect to database"}))
DB 작업을 수행하고 (시도)로 감싸는 함수를 작성할 수는 있지만.
(defn catch-db-connection-errors
[db_operation]
(try
(db_operation)
(catch Exception e {:err "can't connect to database"})))
그래도 예외는 발생하지 않습니다. 아주 간단한 것을 간과 할 수 있습니다 ...
감사합니다 위대한 설명과 매크로에 대해서도 척하십시오. 예, 좋은 지적입니다. 사실 여기에있는 DB 연산과 관련된 모든 예외를 catch하고 싶습니다. 상위 계층으로 버블 링하지 마십시오. 다른면에서는 예외가 거의 없을 수도 있고 실제 예외 유형에 따라 반환 된 문자열을 변경할 수도 있습니다. 다시 감사합니다! – Istvan