SQLException Descobrir o Erro

5 respostas
P

Ao conectar no banco de dados no java se ocorrer algum erro ele gera um SQLException, e neste erro gostaria de identificar o problema na conexão:

  • IP inválido;
  • nome do usuário inválido;
  • senha inválida.

Para assim poder apresentar uma mensagem avisando ao usuário o que ele deve verificar, para poder conectar ao banco.

Alguém sabe como posso identificar cada um dos erros?

Obrigado.

5 Respostas

thiagorani

Uma maneira é atribuir valores ao erro e retornar esse valor qdo o erro ocorre.
Ex:
conexao ok - 0
usuario invalido - 1
senha invalida - 2
ip invalido - 3

Ae voce testa o retorno e da a mensagem correta para o usuário! :wink:

P

E como posso atribuir estes valores de acordo com o tipo de erro?

thiagorani

Voce fará isso na logica que esta implementando.
Voce poderia pegar o erro padrão da SQLException, mas “acho” que esses codigos sao variados dependendo do banco.

Blz?

dsiviotti

Pelo que você falou parece que o usuário digita o login do banco direto na conexão. Você poderia conectar seu programa com um login/senha com permissão máxima e implementar um controle paralelo de usuários. Desta forma inclusive você tem muito mais possibilidades para permissões e coisas assim. Usando o login do banco você defina as permissões que todo banco implementa (insert, update, delete,grant etc…). Uma das vantagens é que você não precisa saber qual erro voltou, porque na verdade você nem deixa ele acontecer. Você testa se o login existe, testa se a senha está correta, tudo separadamente, assim sabe exatamente o que está errado.

dudaskank

Se você usar apenas um SGDB, você pode verificar o código do erro usando getErrorCode() e vendo o que significa na documentaçlão do SGDB, ou, mais difícil, ler a string SQLState com getSQLState() e, como ela parece seguir um padrão, responder de maneira apropriada.

:slight_smile:

Criado 28 de janeiro de 2004
Ultima resposta 2 de fev. de 2004
Respostas 5
Participantes 4