NoRouteToHostException mysql

1 resposta
karasu

Ola Galera!

Como trato uma excecao de NoRouteToHostException quando tentou acessar um servidor mysql e nao tenho acesso ao host. Alguem tem algum exemplo?
O meu fonte está assim:

try 
      {
         Class.forName( JDBC_DRIVER ); 
         connection = DriverManager.getConnection(DATABASE_URL, user, passwd);
         statement = connection.createStatement();
      }  
      catch (SQLException sqlException)                                
      {                                                                  
         sqlException.printStackTrace();                                               
      } 
      catch (ClassNotFoundException classNotFound)                     
      {                                                                  
         classNotFound.printStackTrace();              
      }

porem, ficamos sem acesso ao servidor definido na url e com isso o tomcat reportou isso no log e em seguida caiu tb.
Preciso tratar esse erro justamente por isso, nao quero derrubar o tomcat quando minha app nao tiver acesso ao host do mysql.
log:

java.net.SocketException: java.net.NoRouteToHostException: No route to host

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)

at com.mysql.jdbc.MysqlIO.(MysqlIO.java:284)

1 Resposta

T

Você pode usar um “catch (NoRouteToHostException ex)” ou então um “catch (SocketException ex)”, ou até um “catch (IOException ex)” para pegar outros erros de rede, não só o NoRouteToHostException.

É que NoRouteToHostException extends SocketException extends IOException.

Ah, você está dizendo que o compilador está reclamando que o código não gera SocketException, ou IOException, ou NoRouteToHostException, e se recusa a compilar seu código?
Use algo como

catch (Exception ex) {
    if (ex instanceof IOException) {
        blablabla... // seu tratamento
    } else {
        throw ex; // chore, é outra coisa que você mal tem idéia
    }
Criado 23 de novembro de 2006
Ultima resposta 23 de nov. de 2006
Respostas 1
Participantes 2