On Friday, 5 February 2016 at 07:31:24 UTC, cy wrote:
I think you might be talking about two very different concepts here. Unwinding only happens within the context of a certain scope.

The object itself is the scope (RAII). If you can test for "uncaught_exceptions" you can implement the equivalent of scope(failure/success) etc within destructors.

So you basically should be able to do:

{
   Database db ...;

   for(...){
     db.Transaction t = db.new_transaction(....)


     // transaction t is closed here by destructor
     // but should not commit if exception is unwinding
   }

// db is closed here but should log different information for exceptions
}


Reply via email to