У меня есть следующий код:
try {
//jaw-ws service port operation
port.login();
} catch (Exception e) {
logger.error("Caught Exception in login(): " + e.getMessage());
}
Когда вышеуказанное выполняется с неправильным именем хоста, я получаю:
Caught Exception in login(): HTTP transport error: java.net.UnknownHostException: abc
Это правильно и ожидаемо. Я переписал код специально, чтобы поймать UnknownHostException, следующим образом:
import java.net.UnknownHostException;
try {
//jaw-ws service port operation
port.login();
} catch (UnknownHostException uhe) {
//do something specific to unknown host exception
} catch (Exception e) {
logger.error(Caught Exception in login(): " + e.getMessage());
}
Однако, когда я пытаюсь скомпилировать это, я получаю:
[javac] foo.java: exception java.net.UnknownHostException is never thrown in body of corresponding try statement
[javac] } catch (UnknownHostException uhe) {
[javac] ^
Это явно ложно, поскольку исключение выбрасывается, как я его поймал раньше. Что мне здесь не хватает?
ТИА, рубль