-----------------
(ns clojure.contrib.condition.example
(:use clojure.contrib.condition))
(defn func [x y]
(if (neg? x)
(raise :source ::Args :arg 'x :value x
:message "shouldn't be negative")
(+ x y)))
(defn main
[]
(handler-case :source condition
(println (func 3 4))
(println (func -5 10))
(handle ::Args
(printf "Bad argument: %s\n" condition))))
-----------------
Clojure 1.1.0-alpha-SNAPSHOT
user=> (run clojure.contrib.condition.example)
7
Bad argument: {:stack-trace #<StackTraceElement[]
[Ljava.lang.StackTraceElement;@6bf1a3f4>, :arg x, :message "shouldn't
be negative", :source :clojure.contrib.condition.example/Args, :value
-5}
nil user=> ----------------- Comments welcome. --Steve
smime.p7s
Description: S/MIME cryptographic signature
