Got it, that makes sense as a RuntimeException.

-paddy

On Dec 29, 2007, at 12:13 PM, Felix Meschberger wrote:

Hi,

Well, the HttpStatusCodeException is a usefull tool to provide an error code to the client of the request and quickly abort request processing. Otherwise more or less complicated code would have to be implemented to terminate a request - esp. in the case of included requests - after the
sendError call.

Therefore, making it a RuntimeException (a SlingException that is) would
help have the exception pass through all the way up and have the Sling
main servlet do the sendError call and terminate the request.

I agree, that the HttpStatusCodeException is kind of weird. But because IOExceptions are generally caught, logged and further ignored, the goal
of that exception would most probably almost never be met, if it would
be an IOException (or whatever checked Exception).

Of course, we could just as well drop that exception...

Regards
Felix

Am Samstag, den 29.12.2007, 12:06 -0800 schrieb Padraic Hannon:
I agree with the points in your wiki post. One thing I didn't exactly
follow is what you want to do with the HttpStatusCodeException as that seems to fit into the contingency camp of exceptions. I think you want
to make those extend IOException and thus not be a runtime exception?
I am unsure about the parent class, but I do agree that probably
should not be a Runtime exception since it is something that a program
would care about.

-paddy

On Dec 29, 2007, at 11:58 AM, Felix Meschberger wrote:

Hi all,

Prompted by a blog by Alexander Klimetschek [1] and a very interesting
paper on exceptions [2] I set back to think about the exceptions in
the
Sling API and wrote a wiki page on this subject [3].

To summarize, we should make the SlingException a RuntimeException and
all exceptions defined in the Sling API extend SlingException.
Together
with appropriate catching inside Sling itself (letting
RuntimeExceptions
pass through generally) this should help us streamline exception
handling.

A prototype API definition may be found in the whiteboard at [4].

What do you think ?

Regards
Felix

[1]
http://weblogs.goshaky.com/weblogs/alexkli/entry/exception_best_practices
[2] http://dev2dev.bea.com/pub/a/2006/11/effective-exceptions.html
[3] http://cwiki.apache.org/SLING/effective-exceptions.html
[4]
http://svn.apache.org/repos/asf/incubator/sling/whiteboard/fmeschbe/effective_exceptions


Reply via email to