2012-08-06 21 views
0

我想爲數據表中的每個數據行調用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);  
    } 
} 

我可以從列表中刪除該行嗎?寫入文件..所以它不會再次打印到文件。 我試圖error.remove(線)......但它沒有工作..

也是我的錯誤爲...以下文件..

可我把它格式化爲一個簡單的兩線有任何機會?

+0

請注意,請查看[log4net](http://logging.apache.org/log4net/index.html),將錯誤日誌記錄配置到文件中更容易。 – oleksii 2012-08-06 15:53:03

回答

0

如果我理解正確你的問題,添加一行在文件中之間例外做到這一點:

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

而且,寫你的檔案你的外循環,循環結束後。那麼你的文件中不會有重複的行。

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

非常感謝。有沒有什麼辦法可以格式化錯誤?即使我正在格式化...給它一個10行錯誤..到一個文件.. – user1046415 2012-08-06 16:01:21

0

您可以使用企業庫更容易做到這一點,這是更加個性化。

+0

你可以選擇寫什麼(編程),但你可以配置什麼類型的異常,用可視化工具寫入哪些文件等等。如果需要,您可以創建異常策略並將它們以AOP方式應用到您的方法中。有用的鏈接:http://msdn.microsoft.com/en-us/library/ff664360(v=pandp.50).aspx,如果你在尋找它的話,還有更多的樣本在線。 – 2012-08-06 18:49:07

+0

確定了它..當我給e.message.tostring()我只得到一個錯誤的消息..而不是所有的痕跡..謝謝反正.. – user1046415 2012-08-06 18:57:38