Dave Butenhof <David.Butenhof@xxxxxx> writes:
I think I disagree, at least philsophically, with the characterization
of the model as "fragile". But I think I also understand what you
mean; and the problem isn't with the model, but rather with the effect
of that model on existing code that all-too-casually and agressively
eats exceptions it doesn't understand. I think there are vanishingly
few circumstances where a blind catch(...) without an unconditional
re-throw should be considered "legitimate". If you don't completely
understand what an exception means, you cannot claim to have
completely recovered, and therefore cannot reasonably finalize
propagation.
The problems with catch(...) eating all exceptions are maybe not as
bad as you think. As a matter of fact, there are vanishingly few
exceptions that demand special recovery actions that wouldn't work for
all other exceptions. Systems designed that way tend towards
fragility.