Clojure, like its Lisp ancestors, leans on exceptions for dealing with errors.
Clojure leans on Java’s logging facilities, but you can tap into them in a more idiomatic Clojure way.
Clojure functions are defined with defn, followed by a name, parameters, and body.
defn
Refactoring in Clojure—thanks to its clean syntax and functional paradigm—can be incredibly straightforward.