关于.NET库中XmlDocument的Load方法异常无法捕获的情况
- C# code
private bool LoadXml(string strFilePath){ try { XmlDocument _doc = new XmlDocument(); _doc.Load(strFilePath); XmlNode node = _doc.SelectSingleNode("AISolution"); if (node != null) { return AIFileType.AI_FILE_TYPE_SOLUTION; } } catch (Exception ex) { MessageBox.Show("error"); return false; }}
如代码所示,因为我的XML文件格式不一定正确(文件里面的内容也不一定是XML格式的),所以Load完并且SelectSingleNode的时候就会给我抛异常,说“Root element is missing”,而我的预期目标是想捕获这些异常,不过程序并没有走到catch里面,MessageBox也没弹出来,就在SelectSingleNode那里中断并抛异常了。
我把catch 的Exception 类型改为 XmlException 也不管用。问下这是怎么回事?接触C#不久,求调教。
[解决办法]
不应该,你单步调试试试
[解决办法]
我在调试了一下,能catch住啊,你试试这code
- C# code
namespace ConsoleApplication1{ class Program { static void Main(string[] args) { try { XmlDocument _doc = new XmlDocument(); _doc.Load("C:/test.txt"); XmlNode node = _doc.SelectSingleNode("AISolution"); } catch (Exception ex) { Console.WriteLine("Error"); } } }}