private bool IsFatalError { get; set; }; public void Process() { foreach (string line in file) { ProcessLine(line); if (this.IsFatalError) { return; } } } private void ProcessLine(string line) { string[] columns = line.split(','); foreach (string column in columns) { ProcessColumn(column); if (this.IsFatalError) { return; } } } private void ProcessColumn(string column) { if (hasBadData(column)) { LogErrorMessage(); this.IsFatalError = true; return; } Print(column); }