[seam-issues] [JBoss JIRA] Commented: (SEAMCATCH-31) change terminology for exception type hierarchy traversal

Jozef Hartinger (JIRA) jira-events at lists.jboss.org
Mon Dec 20 07:12:17 EST 2010


    [ https://issues.jboss.org/browse/SEAMCATCH-31?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12571332#comment-12571332 ] 

Jozef Hartinger commented on SEAMCATCH-31:
------------------------------------------

I'm fine with it.

Just wanted to point out that with these changes we are dropping the "2-way pass" of the exception chain so that everybody is aware. We can probably live without that.


> change terminology for exception type hierarchy traversal
> ---------------------------------------------------------
>
>                 Key: SEAMCATCH-31
>                 URL: https://issues.jboss.org/browse/SEAMCATCH-31
>             Project: Seam Catch
>          Issue Type: Feature Request
>          Components: Core API
>    Affects Versions: Alpha2
>            Reporter: Dan Allen
>            Assignee: Jason Porter
>             Fix For: Alpha3
>
>
> There appears to be some confusion about what the traversal path means. We've come up with some better terms that should help users understand how to use it.
> When one of the exceptions in the stack trace is being handled, the handlers for that exception are notified in a particular order. That order is based on the type hierarchy of the exception. The traversal seeks to address this scenario:
> Assume that a group of exceptions have a common super class. You may choose to write a handler that catches all of those exceptions by handling that super type. We'll call that a category handler, where the super class represents a category (i.e., SQLException) So the question you have to ask yourself, then, is: 
> Do you want your category handler to be notified before or after the handler for the subtype gets notified?
> You specify you want the category handler to be notified before by adding the attribute during = TraversalPath.DESCENDING to the @Handles exception.
> However, this descending/ascending isn't catching on. Tree traversal is more commonly referred to using the terms breadth-first or depth-first. Catch notifies breadth-first handlers before depth-first handlers, in the order of the tree traversal (walking the exception type hierarchy).
> Therefore, these attribute values would make more sense:
> during = TraversalMode.BREADTH_FIRST
> during = TraversalMode.DEPTH_FIRST (default)
> If you write a SQLException handler with during = TraversalMode.BREADTH_FIRST, then it will be notified before a handler for BatchUpdateException.  

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list