c# - 如何处理 XmlReader.Create 的异常

标签 c# xml

不确定这里需要多少代码。我正在尝试创建一个 try block ,它不包含我用于处理 XML 文件的所有代码。如果我无法读取 XML 文件,则会在此处收到 UnauthorizedAccessException 异常:

XmlReader xmlIn = XmlReader.Create(configFile, settings);

但是我拥有读取 XML 的所有代码,并且因为 xmlIn 位于 Try block 中,所以我方法中的其余代码看不到它。我考虑过创建一个默认的 XmlReader:

XmlReader xmlIn = null;

在 try block 之前,只是在 try block 中抛出初始化,但该方法应该返回一个包含一些字符串的自定义对象,这会导致应该在该部分之后运行的代码抛出 NullReferenceException 异常。

我搜索了一段时间,我能想到的最好的是以下建议最好处理异常,而不是事先测试对文件的访问,这是我想尝试的:how can you easily check if access is denied for a file in .NET?

因此,我在处理这段代码的正确方法时陷入了困境,我认为这很简单。我是将方法中的所有内容都放入 try block 中,还是在调用此方法的代码部分使用 try,还是有更好的方法来处理此问题?

最佳答案

 XmlReader reader=null;
    try
    {
          //reader.Create code
    }
    catch
    {
        //your exception code
    }

    if(reader!=null)
    {
        //other tasks
    }

关于c# - 如何处理 XmlReader.Create 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16621314/

相关文章:

C# - 一个列表中的多个泛型类型

c# - 通过由特定形式的 onclick 识别的 webBrowser 按下网站上的按钮

c# - Devexpress ASPxDateEdit 控件 OnDateChanged 事件未触发

java - SAX 查找最大深度的节点

xml - 如何将xml文件加载到Hive中

c# - async void 事件处理程序 - 澄清?

java - Spring 4 + Sitemesh 与 Java 配置和没有 xml

.net - 无法在运行时向 XML 添加命名空间

c - 使用 libxml 的 XML 解析器

c# - 如何从导航堆栈中删除页面 - c# windows 8