所以我有这种方法可以验证文件的格式。如果文件有问题,它将引发异常,然后在GUI中捕获该异常并向用户显示一条消息。 问题是现在我必须添加一个新功能来显示文件的所有错误。所以我的想法是从抛出的异常中收集所有消息,并将它们添加到列表中。但是由于该方法的执行在引发第一个异常之后停止,因此我无法确定文件是否存在其他问题。 有什么方法可以在引发异常后保持方法正确运行? 谢谢
答案 0 :(得分:4)
非常简单,将您的try / catch块放入循环中,即可读取项目。
另一个可能比依赖异常更好的选择是编写“ validate()”函数。
答案 1 :(得分:4)
听起来您有一些这样的代码。...
foreach(var record in records)
{
bool valid = Validate(record);
if(!valid)
{
throw new Exception("Record was invalid!");
}
}
相反,您应该像这样对它进行图案化:
var validationErrors = new List<ValidationError>();
foreach(var record in records)
{
ValidationResult validationResult = Validate(record);
if(!validationResult.Valid)
{
validationErrors.Add(validationResult.ValidationError);
continue;
}
}
这样,您就不会在非异常情况下使用昂贵的异常,并且可以继续处理其余有效记录。