2

ここで必要なコードの量がわかりません。XML ファイルを処理するためのすべてのコードを含まない try ブロックを作成しようとしています。XML ファイルを読み取れない場合は、UnauthorizedAccessException 例外が発生します。

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

しかし、XML を読み取るすべてのコードがあり、xmlIn が Try ブロックにあるため、メソッド内の残りのコードはそれを見ることができません。おそらくデフォルトの XmlReader を作成することを考えました:

XmlReader xmlIn = null;

try ブロックの前に、try ブロックで初期化をスローするだけですが、メソッドは、いくつかの文字列を含むカスタム オブジェクトを返すことになっているため、その部分の後に実行されるはずのコードが NullReferenceException 例外をスローします。

しばらく検索したところ、ファイルへのアクセスを事前にテストするよりも、例外を処理する方が良いことを示唆する次のようなものでした。 .NET でファイルへのアクセスが拒否されましたか?

そのため、私はこのコードを処理する適切な方法で途中で立ち往生しています。メソッド内のすべてを try ブロックに入れるか、このメソッドを呼び出すコードの一部で try を使用するか、またはこれを処理するためのより良い方法がありますか?

4

1 に答える 1

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

    if(reader!=null)
    {
        //other tasks
    }
于 2013-05-18T06:16:49.767 に答える