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-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org