Вопрос

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

try {*SOME CODE*}
catch{}

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

Это было полезно?

Решение

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

Другие советы

В Visual Studio - Отладка - > Исключения - > Установите флажок "Общеязыковые исключения во время выполнения" " в брошенной колонне

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

catch (Exception ex) { }

Затем, когда здесь сгенерировано исключение, вы можете проверить ex.

Нет, это невозможно, потому что в этом блоке кода написано "Я не забочусь об исключении". Вы можете выполнить глобальный поиск и заменить следующим кодом, чтобы увидеть исключение.

catch {}

со следующим

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

То, что это будет делать, - это сохранить текущее состояние «ничего не делать» для производственного кода, но при запуске в DEBUG это позволит вам установить точки останова для объекта o.

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

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

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

@sectrean

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top