public void Execute(SpecContext context) { using (context.Timings.Subject(Type, Subject)) { Values.DoDelayedConversions(context); if (Values.Errors.Any()) { var result = Values.ToConversionErrorResult(); result.position = Position; context.LogResult(result); return; } try { var result = execute(context); result.position = Position; context.LogResult(result); } catch (Exception ex) { context.LogException(Values.id, ex, Position); } } }