- try {
- // Rollback DBs to avoid transaction notices. This may fail
- // to rollback some DB due to connection issues or exceptions.
- // However, any sane DB driver will rollback implicitly anyway.
- self::rollbackMasterChangesAndLog( $e );
- } catch ( DBError $e2 ) {
- // If the DB is unreacheable, rollback() will throw an error
- // and the error report() method might need messages from the DB,
- // which would result in an exception loop. PHP may escalate such
- // errors to "Exception thrown without a stack frame" fatals, but
- // it's better to be explicit here.
- self::logException( $e2, self::CAUGHT_BY_HANDLER );
- }
-
- self::logException( $e, self::CAUGHT_BY_HANDLER );