私は誰かが私を助けることを望んでいる。私はCOMから特定のExceptionを取得し、それを捕まえてから何か他のことを試みる必要があります。他のすべては無視する必要があります。例外と私のエラーメッセージは次のとおりです。COMException固有のエラーコードをキャッチ
System.Runtime.InteropServices.COMException (0x800A03EC):マイクロソフトOffice Excel はファイル ':Test.xlsを\ C' にアクセスすることはできません。 いくつかの理由があります。
だから私の最初の試みは
try
{
// something
}
catch (COMException ce)
{
if (ce.ErrorCode == 0x800A03EC)
{
// try something else
}
}
だったしかし、私は、コンパイラの警告をお読みください。整数 定数に
警告22比較は無意味ですが。定数は、私は0x800A03ECが HRESULT知っていると私はちょうどMSDN と読んで見てきた..... ExcelReader.cs 629今21
タイプ 「int型の範囲外の 次のとおりです。 重大度コード、機能コード、および エラーコード:
HRESULTは は、3つの異なるフィールドに分割され、32ビットの値です。重大度コード は、戻り値 が情報、警告、または エラーを表すかどうかを示します。ファシリティコードは、 のエラーの原因となるシステムの領域を示します。
私の究極の質問は、私がその特定の例外をトラップするようにするためですか?またはHResultからエラーコードを取得するにはどうすればよいですか?
ありがとうございます。
メモを追加するだけです。この例外を再現するのはとても難しいことではありません。私はこれを行うために非常に具体的な設定が必要ですが、ここで質問することはもっと速いかもしれないと思っています:) – Ian