The Clojure run time throws IllegalArgumentException in a lot of
different places. It does also throw RuntimeException
in several places. It traps exceptions generically (catch (Exception e),
catch (Throwable t) ) and may have thrown a RuntimeException back
to upper layers instead of the original\ IllegalArgumentException.
Did you print the RuntimeException ? There might a be a text messages
there that can tell us where it came from within the Clojure run time.
Luc
On Thu, 2009-06-11 at 10:12 -0700, peg wrote:
> Hi clojurians,
>
> I was happily clojure-coding whent I tried to catch a exception in a
> thrown deeply in a function.
>
> After looking for the fact that the IllegalArgumentException wasn't
> catch, I added a catch RuntimeException to my catch list ... and that
> worked of course.
>
> Here is the simplified case:
>
> (defn throw-error [arg]
> (throw (IllegalArgumentException. (str arg
>
> (try
> (let [ test
> (into {}
> (map (fn[x] (if (= 5 x) (throw-error x) [x x]))
> [1 2 3 4 5])) ]
>(str "NO PB " name))
> (catch IllegalArgumentException e (.getMessage e))
> (catch RuntimeException e (str "RT" (.getMessage e)))
> )
>
> If you comment the RuntimeException catch, the exception is not
> catched.
>
> I don't understand why IllegalArgumentException is not catched ...
>
> Somebody could tell me ?
>
> Thanks
> Phil
>
>
>
> >
>
Luc Préfontaine
Armageddon was yesterday, today we have a real problem...
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---