Interesting question. Personally, I've always considered the log and
throw approach as an anti-pattern.

Andreas

On Thu, Apr 2, 2009 at 11:43, Hubert, Eric <eric.hub...@foxmobile.com> wrote:
> Hi Synapse devs,
>
> No worries, I don't want to start a discussion about exception handling in 
> general, I just would like to understand the reasoning of your design choice. 
> I stumbled over some areas in the code where I noticed that an original 
> exception is caught, logged AND rethrown wrapped inside a SynapseException or 
> SynapseUtilException (specific RuntimeExceptions). The original exception is 
> then mostly logged as an error, no matter whether the caller may consider the 
> exception to be critical or easily recoverable. If he is able to recover, the 
> original problem is already logged as an error and he may only add a warning 
> about the way he could recover.
>
> The good thing is that the almost the whole code looks pretty consistent in 
> this regard and I bet this is due to the following comment
> "We always log each exception the first time it is caught, and throw a 
> SynapseException with an appropriate error message that tries to give out 
> additional information on why the exception occurred."
> in the developer guidelines at 
> http://cwiki.apache.org/synapse/developer-guidelines.html (Would it make 
> sense to make this guideline easier available? Integrate or link it from the 
> main page?).
>
> What is the reasoning of this exception handling/logging approach?
>
> So far I was used to the following rule(s):
> Either throw (chaining/wrapping of original exception) or log, except on 
> component boundaries where original exceptions have to be logged AND new 
> exceptions created and thrown (no chaining/wrapping of original exception for 
> this case, as implementation details and concrete stack/dependencies shall be 
> hidden from the caller). So far I never had problems with this approach. What 
> are other's experiences?
>
> Of course I will follow the chosen approach - this is more out of personal 
> interest.
>
> Regards,
>  Eric
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org
For additional commands, e-mail: dev-h...@synapse.apache.org

Reply via email to