`_RERAISE;` expands to `throw;`, that is it rethrowing an exception. This is used for cleanups in exception case. It is inconvenient for debugging, when the same exception shows up twice. Change this construct to usual scope guards.