private void InvokeAndLog(ITask task, IBounceCommand command) { using (var taskScope = Bounce.TaskScope(task, command, null)) { try { task.Describe(Bounce.DescriptionOutput); task.Invoke(command, Bounce); taskScope.TaskSucceeded(); } catch (BounceException) { throw; } catch (Exception e) { throw new TaskException(task, e); } } }