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);
}