什么是确定异常原因并进行修正的正确方式?
考虑以下代码。我尝试解析XML字符串,但有时候,传入的XML不会是顶层元素,这意味着它需要被包含在根元素中。
当出现这种情况时,解析器会抛出一个XmlException异常,但它可能会因为很多原因而抛出。我想捕获特定的异常。
我这样做,我承认这可能不太好:
这感觉像是一种hack。正确的做法是什么?
考虑以下代码。我尝试解析XML字符串,但有时候,传入的XML不会是顶层元素,这意味着它需要被包含在根元素中。
当出现这种情况时,解析器会抛出一个XmlException异常,但它可能会因为很多原因而抛出。我想捕获特定的异常。
我这样做,我承认这可能不太好:
var doc = new XmlDocument();
try
{
doc.LoadXml(xml);
}
catch(XmlException e)
{
if(e.Message.Contains("multiple root elements"))
{
doc.LoadXml($"<root>{xml}</root>");
}
else
{
throw e;
}
}
这感觉像是一种hack。正确的做法是什么?