Thanks for the replies. I'll have a look at the impl. of LazySeq tonight and see if that helps. It sounds like it shouldn't be a problem to work around though. Is there somewhere I can read that gives an explanation or information about why this is done?
On Aug 27, 9:33 am, Meikel Brandmeyer <m...@kotka.de> wrote: > Hi, > > On Aug 27, 5:47 am, Tim Snyder <tsnyder...@gmail.com> wrote: > > > > > > > I'm trying to understand how laziness affects exception handling. I > > keep finding my exceptions wrapped in RuntimeExceptions. > > > If I have code that just throws an exception, I get what I'd expect: > > (throw (Exception. "Plain Exception")) --> > > Plain Exception > > [thrown class java.lang.Exception] > > > On the other hand if I make the exception lazy, it is always wrapped > > in a RuntimeException: > > (lazy-seq > > [(throw (Exception. > > "NotPlainException"))]) --> > > java.lang.Exception: NotPlainException > > [Thrown class java.lang.RuntimeException] > > > This of course makes it harder to deal with the exceptions. I've > > looked through the stack traces but can't see any solution. Is this > > due to the Java difference between checked and unchecked exceptions? > > Is there a reasonable way to work around it? Doall has no effect. > > You can travel down the exception chain by means of .getCause. Do that > until you find your Exception or maybe until the cause is not a > RuntimeException anymore. If you didn't find something of concern > rethrow the original exception. Does that make sense? > > Sincerely > Meikel --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---