2015-12-01 7 views
-2

У меня есть код:код выполняет штраф внутри блока попробовать, но если попытаться нет он не

try 
{ 
    IUIItem menuItem = menu.Get(SearchCriteria.ByText(criteria)); 
    menuItem.Click(); 
} 

Он преуспевает только тогда, когда в попытках блока секции (без исключений). Если блок try опущен (не пытайтесь), он выдает исключение. Мне кажется невозможным, но так оно и есть. Зачем ?

+0

Можете ли вы изменить свой вопрос, чтобы добавить свой блок 'catch'? –

+1

может отправить сообщение некоему код до и после этого попробуйте блок. & whats исключение? – Kapoor

+0

Вы уверены, что это успешно? Пожалуйста, покажите свой блокирующий блок – Breeze

ответ

2

Вам необходимо найти определение try-catch. Когда у вас есть try-catch, исключение все еще бросается, но try-catch обрабатывает его, чтобы ваш код мог продолжать работать. Без try-catch программа сломается, потому что там нечего справиться.

0

Этот код не будет компилироваться без выписки. Если вы, например, есть:

try 
{ 
    IUIItem menuItem = menu.Get(SearchCriteria.ByText(criteria)); 
    menuItem.Click(); 
} 
catch (Exception ex) 
{ 
} 

код скомпилируется и выбросить исключение, пойманной, но ничего не делается с ним, так что вы ничего не заметите.

Если добавить:

catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message); 
    throw ex; 
} 

вы будете писать сообщение об исключении на консоли, а затем Rethrow (вперед) исключение.