У меня есть задача, где мне нужно обработать «необработанное исключение» без использования «throws XXXException». Вот ситуация:
Мне нужно повторить метод, если он вызывает JMSException.
public void retry(int retryCount) throws MessageGatewayException, JMSException {
restartConnection(); //
}
public void restartConnection() throws JMSException {
init(); //this is where JMSException is thrown
}
, и в моем методе отправки я вызываю retry ().
public void send(int retryCount) throws MessageGatewayException {
//exit method if retried enough times.
if(retryCount > someNumber)
throw new IllegalArgumentException();
try {
producer.send();
}
catch (JMSException e) {
retry(retryCount); // this is where Unhandled Exception is.
}
}
То, что я хочу сделать, это когда retry () вызывается из send (), и если restartConnection () завершается неудачно и выдает JMSException, я хочу, чтобы retry () вызывал send (retryCount ++). Я не хочу добавлять JMSException в метод send (), но он говорит, что мне нужно это реализовать. Есть ли способ обработать исключение, чтобы у меня не было JMSException при send ()?