将异常写入文件

时间:2012-08-06 15:45:41

标签: c# list foreach sqlexception

我正在尝试为数据表中的每个数据行调用2个存储过程。 当这些Sp发生异常时,我试图捕获异常并发送到文件。

StreamWriter file = new StreamWriter(@"c:\Error.txt",false);
foreach (DataRow row in dt.Rows)
{
    try
    {
        UpdateEvent(LN);
    }
    catch (Exception e)
    {

        //continue; 
    }

    try
    {
        insertevent(LN, note);
    }
    catch (Exception e)
    {

    }

    foreach (string line in error)
    {
        file.WriteLine(line);      
    }   
}

我可以从列表中删除该行...这是写入file..so它不会再次打印到文件。 我尝试了error.remove(line)......但它没有用..

我也得到错误提交为......下面..

我可以将它格式化为简单的两行吗?

3 个答案:

答案 0 :(得分:0)

如果我已正确理解您的问题,要在异常之间的文件中添加一行,请执行以下操作:

 foreach (string line in error)
 {
    file.WriteLine(line);
    file.WriteLine();  //write blank line
 }

此外,在循环结束后,在循环外写入文件。然后,您的文件中不会有重复的行。

答案 1 :(得分:0)

您必须从第一个循环退出循环。

StreamWriter file = new StreamWriter(@"c:\Error.txt",false);
List<string> error = new List<string>();
          foreach (DataRow row in dt.Rows)
          {
                        try
                        {
                            UpdateEvent(LN);
                        }
                        catch (Exception e)
                        {
                            error.Add(String.Format("Exception for Loan Number {0} with a Error {1}", row["LN"].ToString(), e.ToString()));
                            //continue; 
                         }
                        try
                        {
                            insertevent(LN, note);
                        }
                        catch (Exception e)
                        {
                            error.Add(String.Format("Exception for Loan Number {0} with a Error {1}", row["LN"].ToString(), e.ToString()));
                            //continue; 
                         }
            }

            foreach (string line in error)
            {
                file.WriteLine(line);
            }

答案 2 :(得分:0)

您可以使用企业库更轻松地执行此操作,并且可以更加自定义。