Я хотел бы поймать исключение, которое ожидаю, но позволю другим пройти.
Решение, к которому я пришел в данный момент:
protected void perfromCall(Class expectedException) throws Exception {
try {
response = call.call(request);
} catch (Exception e) {
if (!expectedException.isInstance(e)) {
throw new Exception(e);
}
}
}
Хотя это будет молча сгребать ожидаемое исключение, как я хотел бы, и выбрасывать другие, мне не нравится в нем то, что оно оборачивает неожиданные исключения, и теперь я должен отлавливать неожиданное в вызывающей стороне, тогда как ранее (до попытки чтобы молча перехватить ожидаемые исключения) я мог позволить им всплыть на тестовой основе, чтобы провалить тест.
Есть ли более понятный способ сказать: «Я ожидал исключения класса A, но для любого другого исключения пусть он будет брошен вверх по цепочке, пока не будет обработан тестовой платформой выше»?
Редактировать: я хотел предоставить некоторое обоснование того, почему я хочу это сделать, поскольку были некоторые ответы (теперь удаленные), которые молча задавали вопросы, как есть исключение. Это для тестовой среды, которая вызывает сервис. Некоторые из тестов передают службе неверные аргументы, поэтому они ожидают исключения, выдаваемого службой из-за перехвата неверного запроса. Поэтому я хочу молча съесть ожидаемое исключение, но все же позволить неожиданным исключениям вспыхнуть и не пройти тест.