IntelliJ IDEA: Как создать контрольную точку исключения, которая останавливается во всех исключениях * кроме * ClassNotFoundException?
Я хотел бы запустить свой тестовый пакет в отладчике и прервать любое неожиданное исключение, но загрузчики классов Java бросают много ClassNotFoundExceptions во время нормальной работы.
Итак, было бы хорошо, если бы я мог создать контрольную точку исключения, которая игнорирует ClassNotFoundExceptions и останавливается на всем остальном.
Ответы
Ответ 1
Этот ответ почти такой же, как у Миндаса, но подробности были достаточно для того, чтобы я проигнорировал его предложение в первый раз и беспокоился о том, что Intellij поддерживает парней/девушек (спасибо Сержу и Юджину):
IDEA немедленно удалит "java.lang" (версия 11.01), но для этого решения требуется. Если вы не используете это, вы получите всплывающее окно ClassNotFound (ирония иронии).
Я выяснил, что многие "стандартные" библиотеки генерируют исключения в их нормальном потоке операций. Когда вы успешно проигнорируете ClassNotFoundException, вы обнаружите, что другие неожиданно появляются. Ничто никогда не бывает легким.
Ответ 2
По какой-то причине я продолжал "не оценивать выражение точки останова", когда я ставил условие ClassNotFoundException в соответствии с правилами останова "любого исключения". Я смог обойти это, создав специальный элемент точки останова "любое исключение":
- Откройте окно точек останова из представления отладки.
- Снимите флажок "Любое исключение", чтобы мы не останавливались ни при каких обстоятельствах, используя элемент по умолчанию.
- Нажмите знак +, щелкните точки исключения исключений Java, установите флажок "Включить не-проектные классы", введите "java.lang.Exception" в поле, выберите результат, который отображается в поле.
-
Выберите элемент "Исключение", созданный в списке (в разделе "Любое исключение" ), и поставьте
!(this instanceof java.lang.ClassNotFoundException)
в поле условия.
Ответ 3
- щелкните правой кнопкой мыши точку останова и нажмите
Properties
- перейти в область
Conditions
- установите флажок
Condition
- тип
!(myException instanceof ClassNotFoundException)