ここで必要なコードの量がわかりません。XML ファイルを処理するためのすべてのコードを含まない try ブロックを作成しようとしています。XML ファイルを読み取れない場合は、UnauthorizedAccessException 例外が発生します。
XmlReader xmlIn = XmlReader.Create(configFile, settings);
しかし、XML を読み取るすべてのコードがあり、xmlIn が Try ブロックにあるため、メソッド内の残りのコードはそれを見ることができません。おそらくデフォルトの XmlReader を作成することを考えました:
XmlReader xmlIn = null;
try ブロックの前に、try ブロックで初期化をスローするだけですが、メソッドは、いくつかの文字列を含むカスタム オブジェクトを返すことになっているため、その部分の後に実行されるはずのコードが NullReferenceException 例外をスローします。
しばらく検索したところ、ファイルへのアクセスを事前にテストするよりも、例外を処理する方が良いことを示唆する次のようなものでした。 .NET でファイルへのアクセスが拒否されましたか?
そのため、私はこのコードを処理する適切な方法で途中で立ち往生しています。メソッド内のすべてを try ブロックに入れるか、このメソッドを呼び出すコードの一部で try を使用するか、またはこれを処理するためのより良い方法がありますか?