diff options
-rw-r--r-- | src/clojure/contrib/condition/example.clj | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/clojure/contrib/condition/example.clj b/src/clojure/contrib/condition/example.clj new file mode 100644 index 00000000..25ff74b6 --- /dev/null +++ b/src/clojure/contrib/condition/example.clj @@ -0,0 +1,28 @@ +;; Copyright (c) Stephen C. Gilardi. All rights reserved. The use and +;; distribution terms for this software are covered by the Eclipse Public +;; License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can +;; be found in the file epl-v10.html at the root of this distribution. By +;; using this software in any fashion, you are agreeing to be bound by the +;; terms of this license. You must not remove this notice, or any other, +;; from this software. +;; +;; clojure.contrib.condition.example.clj +;; +;; scgilardi (gmail) +;; Created 09 June 2009 + +(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)))) |