Details

      Description

      The core of exception handling from Solder is around exception handler methods. These are simple, usually stateless methods that handle a particular type of exception (concrete type or super type). Information about them can be found at http://docs.jboss.org/seam/3/3.1.0.Final/reference/en-US/html/catch-client_usage.html#client_usage.handlers

      In Solder these live on an annotated type with a marker annotation (@HandlesExceptions) to speed processing. Handler methods are denoted by an annotation @Handles. They behave similar to observers in CDI. Each argument after the first is an injection point and resolved before calling the method.

      Exception handler methods can also be ordered in a consistent deterministic way. based on the hierarchy of the exception being handled, and if needed by an ordinal number (used only if multiple handlers apply for the same exception and same traversal type).

      Handlers are called in one of two traversals of the exception chain. Either during a depth first search for handlers or a breadth first search. This search looks at the type of exception being handled by the handlers.

        Issue Links

          Activity

          Hide
          Nicklas Karlsson added a comment -

          Would is be possible to make the handles-resolver processes more customizable? So you could just provide your own resolver on a per-exception basis instead of just depth/breadth or handler precedence?

          Show
          Nicklas Karlsson added a comment - Would is be possible to make the handles-resolver processes more customizable? So you could just provide your own resolver on a per-exception basis instead of just depth/breadth or handler precedence?
          Hide
          Jason Porter added a comment -

          I'd have to think about that. Currently you can terminate the execution of the handler calls. I would think if you gave the concrete type of the exception then called handled() you'd be good.

          Show
          Jason Porter added a comment - I'd have to think about that. Currently you can terminate the execution of the handler calls. I would think if you gave the concrete type of the exception then called handled() you'd be good.
          Hide
          Jason Porter added a comment -

          You can see the result of the discussion in the form of an API at https://cwiki.apache.org/confluence/display/DeltaSpike/Exception+Control+Drafts

          Show
          Jason Porter added a comment - You can see the result of the discussion in the form of an API at https://cwiki.apache.org/confluence/display/DeltaSpike/Exception+Control+Drafts
          Hide
          Mark Struberg added a comment -

          shipped in deltaspike-0.2-incubating

          Show
          Mark Struberg added a comment - shipped in deltaspike-0.2-incubating

            People

            • Assignee:
              Jason Porter
              Reporter:
              Jason Porter
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development