我正在從文本文件中逐行讀取文件並進行一些處理。問題是如果在某一行發生了一些錯誤。然後生成一個異常,我想要的是我想忽略該錯誤並移動到下一行閱讀。 但是,如果生成異常,那麼我不能繼續閱讀輸入行。請幫忙。如何在從文本文件行逐行讀取數據時捕獲並忽略或處理異常
回答
如果你真的想「忽略」例外,你可以這樣做:
try
{
foo(); // Something that may throw an exception
}
catch
{
}
更多信息,請參見http://msdn.microsoft.com/en-us/library/0yd65esw(v=vs.80).aspx。
但通常情況下,異常意味着發生了一些不好的事情,你可能想要以某種方式處理。
使用try catch和記錄錯誤。您的代碼應該是這樣的:
try
{
//read lines here
}
catch(Exception ex)
{
//log the exception but don't throw anything.
}
你可能會被什麼也不做在抓,但你可能會後悔就晚了。
嘗試捕捉文章:
您只需將您的包裹處理代碼在try
/catch
塊。
try
{
DoSomeProcessing(lineThatIreadFromFile);
}
catch
{
// Log or Ignore error here
}
但是,請注意,通常,吞嚥異常並不是一個好主意。你應該使你的程序失敗(如果不可恢復的話),或者可能在某個地方記錄它們,這樣你就可以修復程序失敗的原因。
try
{
//put the statement throwing the exception here
}
catch
{
//will eat the exception
}
//execution will continue here
這不是一個好方法。您應該積極主動,並捕獲可從中恢復的特定例外情況。把它們趕到靠近它們拋出的地方。讓其餘的人泡起來,終止這個過程。通過吞噬所有的異常,你會得到一個魯棒性的錯覺,而事實上你的代碼可能充滿了錯誤。對異常處理沒有任何「快速和骯髒」的方法。看到這個answer。通過捕獲非特異性異常,如 System.Exception的,System.SystemException,等等,在應用程序代碼
避免處理錯誤。有些情況下,處理應用程序中的錯誤是可接受的,但這種情況很少見。
應用程序不應處理可能導致意外或可利用狀態的異常。如果無法預測所有可能的異常原因並確保惡意代碼無法利用 生成的應用程序狀態,則應允許應用程序終止而不是處理異常。
根據您提供的信息非常有限有兩件事情可以做:
圍成一個空的catch塊有問題的行。等待下一個維護者給你做壞事。
明白爲什麼例外是發生並修改代碼,以便在未來的維護者理解爲什麼它是安全的,你忽略了在一定條件
如果我假設你問的正確,這裏是你的代碼可能會是什麼樣子基本輪廓:
using (StreamReader reader = File.OpenText("Path\to\your\file"))
{
string line = null;
while ((line = reader.ReadLine()) != null)
{
try
{
ProcessLine(line);
}
catch { /* Ignore exceptions */ }
}
}
這通常不是一個好主意,盲目地捕獲所有異常,所以如果可以的話,你應該過濾你的catch塊捕捉到更多的東西例外具體。
很難理解你想要達到的目標,但你可能問的是這樣的:
while(condition)
{
try {
//process file line here
}
catch (Exception ex) {
LogException(ex);
}
}
不是在我看來,一個好的設計決定的方式。如果可以的話,避免它。
- 1. 如何在讀取文件行時處理異常?
- 2. 通過文本文件逐行讀取異常長時間的文本文件
- 3. 逐行讀取文件並忽略它們中的一部分
- 4. 如何逐行讀取文本文件?
- 5. 如何逐行讀取文本文件?
- 6. 從文本文件讀取數據並忽略其他
- 7. 從文本文件逐行讀取C++
- 8. android - 從文本文件逐行讀取
- 9. 批處理腳本 - 從文件中讀取行時忽略散列
- 10. 從文本文件讀取時如何忽略數字?
- 11. Matlab - 從文件中讀取數據,同時忽略nan行
- 12. 在批處理或VBS腳本中逐行讀取文本文件?
- 13. 如何使用ant腳本從文件逐行讀取數據?
- 14. 從文件讀取異常處理的怪異行爲
- 15. 如何獲取文件逐行閱讀
- 16. 如何使用NIO從gzip文本文件逐行讀取文本數據?
- 17. 如何逐行讀取2個文件並在處理後編輯每行
- 18. 讀取文本文件並省略行
- 19. 從文本文件中逐行讀取數據
- 20. 如何逐行讀取uitextview文本行?
- 21. 從shell腳本逐行讀取文件
- 22. MIRC,讀取文本文件時忽略「|」?
- 23. 如何從文本文件讀取時忽略空格?
- 24. 從txt文件中逐行讀取並逐行分割
- 25. 讀取文本文件時忽略頁眉和頁腳行
- 26. 逐行讀取文本文件並從緩衝區掃描 - C
- 27. 從兩個文件中逐行讀取並同時處理它們
- 28. 從文件中逐行讀取整數
- 29. 在java中讀取文件時忽略異常字符
- 30. 如何從txt文件中逐字符讀取字符並逐行讀取C++
什麼是例外?你的代碼是什麼樣的? – dlev
請發佈相關代碼。 – FishBasketGordo
閱讀關於捕獲異常的文檔。 –