2008-09-02 7 views
8

Я отладку приложения производства, что сыпь пустых блоков улове Вздоха:Отладка исключения в пустом блоке поймать

try {*SOME CODE*} 
catch{} 

Есть ли способ увидеть, что исключение, когда отладчик попадает в ловушку в среде IDE?

+0

Извините, должно быть, было яснее - я не могу изменить код - я просто пытаюсь отследить некоторые ошибки. – Rikalous 2008-09-02 15:44:11

ответ

1

Если вы используете Visual Studio, есть возможность прерываться всякий раз, когда генерируется исключение, независимо от того, является ли оно необработанным или нет. Когда генерируется исключение, помощник исключения (возможно, только VS 2005 и более поздний) расскажет вам, какое это исключение.

Хит Ctrl + Alt + E, чтобы вызвать диалоговое окно параметров исключения и включите этот.

0

Не можете ли вы просто добавить исключение в этот момент и проверить его?

3

В Visual Studio - Debug -> Исключения -> Установите флажок на «Common Language Runtime Исключения» в Брошенный колонке

6

В VS, если вы посмотрите в области Locals вашего IDE в то время как внутри блока улова , у вас будет что-то вроде $ EXCEPTION, в котором будет вся информация для только что пойманного исключения.

+0

Я ничего не мог увидеть – Rikalous 2008-09-15 08:55:21

+0

Где вы это видели? Расширьте информацию – 2010-09-29 08:01:12

1

Вы можете написать

catch (Exception ex) { } 

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

1

Нет, это невозможно, потому что этот блок кода говорит: «Меня не волнует исключение». Вы можете сделать глобальную находку и заменить ее следующим кодом, чтобы увидеть исключение.

catch {} 

со следующим

catch (Exception exc) { 
#IF DEBUG 
    object o = exc; 
#ENDIF 
} 

Что это будет сделать, это держать обновляйте делать ничего поймать для кода производства, но при работе в DEBUG, это позволит установить точки останова на объекте о.

0

@sectrean

Это не работает, потому что компилятор игнорирует значение ех Exception, если нет ничего использования.