我正在编写一个简单的程序来解析文本文件并将其放入“通用列表”中。
示例文字:
var userId = calEvent.user_id;
$("#user_id").val(userId).change();
有时候,可能会出现错误,文件中的数据丢失
1,Joe,CA,58,2
2,Matt,TX,63,5
我写了一个Catch语句来处理错误。 最后,客户需要一个包含引起错误的行的文件。
我的软件原理问题是,在出现错误的情况下,应该将catch语句用于处理其他业务逻辑,还是仅将其用于引发异常? 然后,在此catch语句中,我将创建一个错误文件夹以及包含引起问题的数据的文件。这样合适吗 请参阅下面的Catch语句。
-
1,Joe,CA,58 // missing one number
2,Matt,TX,63,5
答案 0 :(得分:2)
不,那是错误的。在您的catch{}
块中,您应该在逻辑上进行日志记录,然后根据系统要求重新抛出异常(OR),从而可能重试相同的操作。但是,不建议进行其他操作(例如创建文件夹或文件),因为如果这些操作失败(由于某种原因),那么这些操作将不会被捕获,并且您的应用程序将无法正常运行。
答案 1 :(得分:0)
感谢您的建议,我结束了使用任何Logger的工作,Nlog就是这种情况。 让我知道这是否是正确的编码标准。或随时发表评论。
while ((line = r.ReadLine()) != null)
{
string[] parts = line.Split(',');
// Skip the column names row
if (parts[0] == "id") continue;
try
{
CustomerData dbp = new CustomerData
{
CustomerId = Convert.ToInt32(parts[0]),
CustomerName = parts[1],
CustomerState = parts[2],
ProductId = Convert.ToInt32(parts[3]),
QuantityBought = Convert.ToInt32(parts[4]),
};
customerdata.Add(dbp);
}
catch (Exception ex)
{
logger.Error(ex, "Got exception.");
logger.Info(line);
}
}