Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Done
-
None
-
None
-
Medium
Description
Currently, the exceptions in the stack are being handled in tandem. All the breadth-first type visiting is happening for each exception in the stack, then all the depth-first type visiting is happening. Each exception should be processed in turn.
Consider this case:
The following exception chain is thrown: E1 -> E2 -> E3 (where "X -> Y" means X is caused by Y). Also, E3S is a superclass of E3. Let's assume there are handlers for all four exception types for both traversal modes (breadth-first and depth-first).
The expected order of execution is as follows:
E3S handler in the breadth-first traversal mode
E3 handler in the breadth-first traversal mode
E3 handler in the depth-first traversal mode
E3S handler in the depth-first traversal mode
E2 handler in the breadth-first traversal mode
E2 handler in the depth-first traversal mode
E1 handler in the breadth-first traversal mode
E1 handler in the depth-first traversal mode
We process the exceptions in the stack in the order E3, E2, E1 because we assume the cause, E3 is the most important exception.
Attachments
Issue Links
- incorporates
-
SOLDER-171 Descending traversal path not working as expected
-
- Closed
-
- is related to
-
SOLDER-176 change terminology for exception type hierarchy traversal
-
- Closed
-