Это может быть немного некрасиво ... Вы можете поиграть с этим. Дважды попробуйте код, поймав первое исключение и определив сообщение. Если это то, что вы ожидаете, игнорируйте это или делайте то, что вы собирались сделать раньше. Если это не то, что вы ожидали, бросьте это на более высокую попытку.
Теперь, когда я думаю об этом, вы можете сделать это за одну попытку, если хотите, просто взглянув на сообщение.
При этом, я думаю, вам следует пересмотреть идею полагаться на это исключение для контроля потока вашей программы. Вы уверены, что у вас должен быть дизайн, который говорит: «Я хочу, чтобы это исключение произошло»?
try {
try {
// your code
} catch(IOException innerIOE) {
if(innerIOE.getMessage().begins("An existing connection was forcibly closed")) {
log.info("Exception expected, yay.");
}
else {
throw innerIOE;
}
} // end inner catch
} catch(IOException outerIOE) {
// error handling code here, your "An existing connection was forcibly closed"
// shouldn't make it out here
}