2014-10-14 2 views
0

Я заметил в производстве, что наше приложение IIS умирает (завершение пула приложений), и когда это происходит, я вижу ошибку в COM-объекте, который использует наше приложение. Это случается редко, поэтому трудно отладить то, что вызывает ошибку.Если у меня есть исключение catch, все будет поймано, даже с COM-объектом?

Я поставил попытку ... catch (Exception e) {} блок вокруг кода COM, и мне было интересно, не будет ли этот случайный объект COM не пойман.

Возможно ли это? Другими словами, если возникает исключение COM, оно будет поймано?

ответ

0

Да вы будете ловить его с

try 
{ 
    //code here 
} 
catch (System.Runtime.InteropServices.COMException COMex) 
{ 
    //you can try this too. Check this answer http://stackoverflow.com/questions/898726/why-would-this-catch-all-block-not-in-fact-catch-all 
} 
catch (Exception ex) 
{ 
    //do things 
} 

Вы можете проверить Microsoft документацию об исключении и увидеть, что наследует System.Exception

+0

Это не всегда так. OP легко может вызывать ошибку, которая не попадает в попытку catch. – paqogomez

+0

@paqogomez, очевидно, если он выбрал это исключение где-то, код должен быть в try catch ... Если он не в try catch, исключение будет не catch ... – mybirthname

+0

Мое понимание из OP - это ситуация, подобная [этой] (http://stackoverflow.com/a/10853702/2589202), где возникают ошибки памяти. – paqogomez

Смежные вопросы