Which brings up the issues that I mentioned before. Getting the return of an erroring function isn't such a big issue, but turning everything into exceptions would prevent getting any return value from any function/operation which triggers anything,
Maybe you want to keep your cake and eat it too, but in practice, functions which return useful content and also error are simply poorly designed. You can work around such function, for example if I absolutely need both channels, exception AND return value, I have this: 1) switch the error handler in a temporary mode which logs errors in an array without throwing them. 2) call the offending function 3) preserve the return value and read the log 4) create an exception class instance which contains all needed data 5) throw it. Alternatively I can choose to just return the value and not throw anything, depends what makes most sense. I wrap this once and then I can call it just as usual, getting both channels. BUT, this is very rare, and is a sign of a poor design of the function IMHO. Stan