void PerformAction(Action action) { try { action(); } catch (Exception actionException) { try { Exit(); } catch (Exception disposalException) { throw new ScopeException(disposalException, actionException); } throw; } Exit(); }