Detecting exception unwinding

Ola Fosheim Grøstad via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Feb 4 02:55:29 PST 2016


On Thursday, 4 February 2016 at 10:03:13 UTC, Jonathan M Davis 
wrote:
> On Wednesday, February 03, 2016 23:55:42 Ali Çehreli via 
> Digitalmars-d-learn wrote:
>> std::uncaught_exception used to be considered useless:
>
> I think that the only case I've ever had for it was for a unit 
> testing framework where I wanted to use RAII to print something 
> when the tests failed (and thus an exception was thrown) but 
> not print if they succeeded, and if I were to do that in D, I'd 
> just use scope(failure).

Well, yes, it is useful for logging. It is useful to know if an 
invariant is broken during regular unwinding (serious error) or 
exceptional situations (might be unavoidable).

But I think Herb Sutters major point was that if you had multiple 
destructors it could not detect where the exceptions originate 
from. So C++17 has a new function that returns the number of 
uncaught expressions:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4152.pdf



More information about the Digitalmars-d-learn mailing list