如何实现动作的忽略/重试/取消模式?

我有一个由C#.NET 4.0开发的两层Windows窗体应用程序。 在此APP中,我读取文件内容并在Data-Access-Layer中创建实体列表,并将其返回到GUI层以在网格视图中显示。 在我当前的逻辑中,如果文件中的一行已损坏或格式错误(我无法从中创建实体)或任何其他exception,我抛出exception并中止该过程。 现在,我如何实现忽略/重试/取消模式? 我的意思是什么是显示忽略/重试/取消对话框并执行任何用户想要的最佳方法(例如,忽略当前行并转到下一行,取消该过程,或重试当前失败的行读取)? 它有什么模式吗?

提供此类选项时,我采用以下模式:

DialogResult result = DialogResult.Retry; while (result == DialogResult.Retry) { try { DoProcess(); break; } catch { result = MessageBox.Show(errorMessage, caption, MessageBoxButtons.AbortRetryIgnore); if (result == DialogResult.Abort) throw; } } 

如果用户选择“重试”,则循环将再次运行。 如果用户单击Abort,则将抛出exception(在链中进一步捕获并因此中止其余操作)。 忽略将导致循环退出而不抛出exception。 我想不出更简洁的做法。