That's a nice idea. Having a centralized choice on the behaviour is good. What i don't like is that you still have to code the "if error then log exit" idiom on each call (in the case you're returning false instead of raising an exception).
Btw about performance penalities for exception, are those so heavy? I don't know very well how they're lowered in the assembler, but it looks like it can be done in quite an efficent way.
Bookmarks