回答
try
{
yourXmlDocument.LoadXML("xml is here");
}catch{
//It has failed.
}
你可能是更具體的,只有從loadXML的捕獲錯誤
try
{
yourXmlDocument.LoadXML("xml is here");
}catch(System.Xml.XmlException e){
//It has failed.
}
你可以簡單地在代碼周圍放一個try/catch,並對產生的異常做任何事情。
如果例外是遠程,就像你說的,你只得到了消息的字符串版本或結果,那麼你將無法使用它的異常處理機制。然而,如果你認識到琴絃並且做了一些事情,你可能會把它們拼湊在一起。
如果你得到Exception對象,那麼你可以在它上面pull out the good old try/catch stuff。
永遠不要忽略異常。這些「我確信我可以放心地忽略這個」有時會導致最糟糕和最難找到的錯誤。
總是至少記錄異常。也可以使用Debug.Fail
方法,它將在調試版本中顯示一個包含異常詳細信息的對話框 - 這將幫助您更好地診斷大多數問題。
在這種特殊情況下(XML解析),當數據沒有被正常發現而沒有捕獲和忽略異常時,當然有辦法處理這種情況 - 隨意編輯答案以向我們展示確切的xml解析方法你正在使用,我們可以告訴你如何避免例外。
因爲你可能會問一個通用的情況下,這是你如何處理異常,如果你想「忽略」他們(如果你不希望他們顯示給用戶):
try
{
//do something that throws an exception
}
catch(Exception ex) //or even better: catch a specific exception type
{
//do not ignore the exception, at least log it
System.Diagnostics.Debug.Fail(ex.Message, ex.ToString());
log.Debug("Probably expected error happened: " + ex.ToString());
}
那麼,爲了回答你的問題,如果你把你的代碼放在TryCatch塊中,然後對於有問題的異常,只需簡單地捕捉它並不做任何事情。
這就是說,爲什麼不只是在處理時檢查空標記而不是依賴異常處理呢?與檢查條件相比,異常處理通常具有更多的開銷,並且如果存在可能不存在某些情況的預期情況,則應該在代碼中處理該情況。
我該如何忽略c#中的異常?
不要。
例外情況是試圖告訴你,你的代碼有問題。
如果您收到的XML解析過程中的異常,因爲一個特定的元素不存在,那麼代碼改寫爲檢查試圖讀取它之前的元素是否存在。
如果你問如何處理一個特定的異常,那麼您可以在一個try-catch塊包裝它:
XmlDocument doc = new XmlDocument();
try
{
doc.Load(url);
}
catch (XmlException)
{
// Handle the error here
return (default value);
}
// Start going through the XmlDocument
上面的代碼將處理特定情況下XML是格式不正確。但是,如果XML是格式良好的,但是由於特定的元素不存在,並且您認爲它會發生異常,則代碼將拋出異常,則根本不要使用異常處理代碼;只需在嘗試閱讀之前檢查它是否存在。
- 1. 是否可以忽略TearDown或清理代碼中的異常
- 2. 是否可以忽略TextBox?
- 3. 奇怪的錯誤:-CoreAnimation:忽略異常:
- 4. 是否可以忽略PHP中的特定錯誤?
- 5. 是否可以忽略UnMapViewOFFile()的錯誤487(ERROR_INVALID_ADDRESS)?
- 6. 是否可以忽略窗扇中的類型錯誤?
- 7. Nlog錯誤(消息,異常)忽略異常
- 8. 是否可以忽略'out'參數?
- 9. 在Python中,是否可以打印異常,即使它們被忽略?
- 10. 是否可以使PDO忽略無效的參數編號異常?
- 11. 拋出可忽略的異常
- 12. 是否有可能讓boto3忽略簽名過期錯誤?
- 13. 強制Laravel忽略異常
- 14. 忽略異常在Python
- 15. 如何忽略pathtoolong異常?
- 16. 線程忽略KeyboardInterrupt異常
- 17. 使Visual Studio忽略異常?
- 18. 在C中忽略異常#
- 19. 如何忽略異常
- 20. Nservicebus忽略內部異常
- 21. WebDriverWait不會忽略異常
- 22. 駱駝異常忽略
- 23. GSON - 忽略解析異常
- 24. 垃圾收集器是否忽略異常
- 25. 可以「加載腳本錯誤」js錯誤被忽略?
- 26. Laravel:批量插入其他並忽略錯誤異常複製
- 27. RJDBC :: dbConnect期間Java異常錯誤:如何默默忽略?
- 28. Rails 4忽略錯誤/異常並繼續
- 29. 在使用YouTube API時忽略Python中的異常/錯誤
- 30. rxjs:switchMap忽略錯誤
檢查一個巨大的XML文件有時可能是地獄> _ <你有屬性,看起來像XML代碼,但實際上是在XML屬性中的文本我喜歡zac effron」/>關閉標籤 ,自動關閉標籤或被稱爲等...尋找錯誤並自己找到它們是您想要做的事情。然而,你將會遇到的複雜性(以及所有可能出現的情況)可能比使用try/catch所帶來的小開銷更糟糕。當然,那只是我的意見... –
Warty
2010-04-14 19:47:51
@ItzWarty:如果XML格式錯誤,那是真的。但是這個問題似乎強烈暗示XML已經被加載到DOM或XmlReader中,並且代碼只是假設存在的元素不存在。 – Aaronaught 2010-04-14 19:49:07
您是否有定義XML的模式?如果是這樣,爲什麼不以此爲起點進行驗證。限制例外和處理個別元素問題的需要。 – 2010-04-14 19:49:52