Mercurial > jhg
diff src/org/tmatesoft/hg/core/HgCallbackTargetException.java @ 370:a2341e761609
Let callback implementations deliver errors (e,g. own exceptions) to client code
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 22 Dec 2011 02:37:10 +0300 |
parents | 2fadf8695f8a |
children | f52ca9530774 |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/core/HgCallbackTargetException.java Thu Dec 22 01:46:40 2011 +0300 +++ b/src/org/tmatesoft/hg/core/HgCallbackTargetException.java Thu Dec 22 02:37:10 2011 +0300 @@ -21,7 +21,14 @@ /** - * Checked exception that indicates errors in client code and tries to supply extra information about the context it occured in. + * Checked exception that indicates errors in client code and tries to supply extra information about the context it occurred in. + * + * Generally, client need to pass own error information/exceptions from within implementations of the callback methods they supply. + * However, there's no straightforward way to alter throws clause for these methods, and alternatives like generic {@link Exception} or + * library's own {@link HgException} are rather obscure. Suggested approach is to wrap whatever exception user code produces with + * {@link RuntimeException} subclass, {@link Wrap}. Then, unwrap and re-throw with checked {@link HgCallbackTargetException}. + * + * FIXME REVISIT perhaps, shall just throw HgCallbackTargetException from any handler, and do not catch anything in commands at all? * * @author Artem Tikhomirov * @author TMate Software Ltd.