Перехват специфичного для COMException кода ошибки

Я надеюсь, что кто-то может мне помочь. Я'у меня есть конкретное исключение из COM, которое мне нужно перехватить, а затем попытаться сделать что-то еще, все остальные должны игнорироваться Мое сообщение об ошибке с исключением:

System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel не может получить доступ к файлу 'C: \ test.xls', Есть несколько возможных причин:

Итак, моя первая попытка была

try
{
 // something
}
catch (COMException ce)
{
   if (ce.ErrorCode == 0x800A03EC)
   {
      // try something else 
   }
}

Однако тогда я прочитал предупреждение компилятора:

Предупреждение 22 Сравнение с интегральной константой бесполезно; константа находится вне диапазона типа 'INT» ..... ExcelReader.cs 629 21

Теперь я знаю, что 0x800A03EC - это HResult, и яЯ только что посмотрел на MSDN и прочитал:

HRESULT - это 32-разрядное значение, разделенное на три поля: код серьезности, код объекта и код ошибки. Код серьезности указывает, представляет ли возвращаемое значение информацию, предупреждение или ошибку. Код объекта идентифицирует область системы, ответственную за ошибку.

Итак, мой главный вопрос: как я могу обеспечить ловушку этого конкретного исключения? Или как я могу получить код ошибки от HResult?

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос