[ https://issues.apache.org/jira/browse/CHAIN-67?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13222201#comment-13222201 ]
Simone Tripodi commented on CHAIN-67: ------------------------------------- Patch looks more than good, I am going to apply it, thanks! > Refactor of explicit Exception throws to a RuntimeException type > ---------------------------------------------------------------- > > Key: CHAIN-67 > URL: https://issues.apache.org/jira/browse/CHAIN-67 > Project: Commons Chain > Issue Type: Improvement > Affects Versions: 2.0 > Reporter: Elijah Zupancic > Priority: Minor > Labels: exception-handling > Fix For: 2.0 > > Attachments: chain-67.diff > > Original Estimate: 2h > Remaining Estimate: 2h > > 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: > {code:java} > ProfileContext context = new ProfileContext(); > Command<String, Object, ProfileContext> command = new ProfileCheck(); > try { > command.execute(context); > } > catch (Exception e) { > throw new RuntimeException(e); > } > {code} > 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. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira