commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Carman <ja...@carmanconsulting.com>
Subject Re: [chain] Changing from Exception to RuntimeException
Date Sun, 04 Mar 2012 06:39:43 GMT
I hate checked exceptions.  +1

On Sat, Mar 3, 2012 at 11:07 PM, Elijah Zupancic <elijah@zupancic.name> wrote:
> As I've been working on the examples and the documentation for v2 of
> chain, I've noticed that the API for exception handling of Command and
> Chain is clunky.
>
> When executing a command like:
>
>        ProfileContext context = new ProfileContext();
>        Command<String, Object, ProfileContext> command = new ProfileCheck();
>
>        try {
>            command.execute(context);
>        }
>        catch (Exception e) {
>            throw new RuntimeException(e);
>        }
>
> The user of chain has to explicitly catch Exception. If the desire was
> to catch the most base error and force the user to deal with it, why
> aren't we using Throwable? Anyways, this design leads to less than
> elegant code and since we will be breaking the API in v2, I would like
> to suggest a different approach.
>
> I suggest that Command and Chain should throw a custom exception class
> called ChainException that inherits from RuntimeException. And in the
> CommandBase, ChainBase we wrap the catch of Exception in this runtime
> exception. Moreover, we would attach to ChainException some optional
> debug information about the Context invoked when the exception was
> encountered. If anyone thinks that this is a good idea, I can whip up
> a patch quickly.
>
> Thanks,
> -Elijah
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message