Mercurial > jhg
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 369:091666b87f62 | 370:a2341e761609 |
|---|---|
| 19 import org.tmatesoft.hg.util.Path; | 19 import org.tmatesoft.hg.util.Path; |
| 20 | 20 |
| 21 | 21 |
| 22 | 22 |
| 23 /** | 23 /** |
| 24 * Checked exception that indicates errors in client code and tries to supply extra information about the context it occured in. | 24 * Checked exception that indicates errors in client code and tries to supply extra information about the context it occurred in. |
| 25 * | |
| 26 * Generally, client need to pass own error information/exceptions from within implementations of the callback methods they supply. | |
| 27 * However, there's no straightforward way to alter throws clause for these methods, and alternatives like generic {@link Exception} or | |
| 28 * library's own {@link HgException} are rather obscure. Suggested approach is to wrap whatever exception user code produces with | |
| 29 * {@link RuntimeException} subclass, {@link Wrap}. Then, unwrap and re-throw with checked {@link HgCallbackTargetException}. | |
| 30 * | |
| 31 * FIXME REVISIT perhaps, shall just throw HgCallbackTargetException from any handler, and do not catch anything in commands at all? | |
| 25 * | 32 * |
| 26 * @author Artem Tikhomirov | 33 * @author Artem Tikhomirov |
| 27 * @author TMate Software Ltd. | 34 * @author TMate Software Ltd. |
| 28 */ | 35 */ |
| 29 @SuppressWarnings("serial") | 36 @SuppressWarnings("serial") |
