Capturando mensagem de Exception

11 respostas
Radams_Venceslau

Olá galera,

Tenho um método de conexão com o banco de dados PostgreSQL e gostaria que quando lançasse uma Exception imprimisse em um JOptionPane a resposta da exceção
estou fazendo dessa forma e tô obtendo exito a mensagem de exemplo é de senha inválida do BD:

private void abrirConexao() {
        try {
            Class.forName(driver);
            connection = DriverManager.getConnection(url, user, password);
            statement = connection.createStatement();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
    }

quando ocorre uma Exception a mensagem impressa aparece:

FATAL: autentica��o do tipo password falhou para usu�rio “postgres”

Até ai tudo bem, porém nas palavras que tem acentuação aparece um caractere ‘�’ Ex: autentica��o

A minha pergunta é a seguinte tem alguma forma de imprimir a resposta de maneira correta com as acentuaçãos. Ex: autenticação

??

Desde já agradeço.

11 Respostas

Radams_Venceslau

Ninguem?

C

Ae blz ?

Coloque mais detalhes sobre o ambiente que voce esta usando, esta testando no windows ou linux?!?

flw

rogelgarcia

O que tá rolando é um problema de charset…

E costuma ser meio complexo arrumar isso… ve o charset que vc tá usando no banco… tenta trocar pra ver se funciona

Radams_Venceslau

Olá cacosapo,
desculpe não ter colocado, mais estou utilizando um SO Windows.

e rogelgarcia, mais detalhes de como tah as configurações do meu BD

Codificação: UTF-8
Collation: Portuguese_Brazil.1252
Character Type: Portuguese_Brazil.1252

e vc mensionou charset, nunca vi falar sobre isso podia me dar mais informações.

Desde já agradeço e aguardo respostas.

rogelgarcia

charset é a codificacao de caracteres…

acho que o problema tá aqui

Codificação: UTF-8
Character Type: Portuguese_Brazil.1252

Tá rolando uma conversao… de 1252 (que é o mesmo de ISO-8859-1) pra UTF-8 e nessa conversão… os caracteres estao sendo mostrados de forma errada…

Tenta mudar essa codificacao para ISO-8859-1… ou o character type para UTF-8

rogelgarcia

Eu acho que de dentro do programa java nao dá pra voltar a codificacao original… pq informacoes podem já ter sido perdidas…

rmendes08

Tente assim:

new String(e.getMessage().getBytes("ISO-8859-1") , "ISO-8859-1")
LPJava

o satanas todo eh UTF-8 tive problemas com ele tb com relacao acentuacao, agora ate eu queria saber como vc resolveu. Para JEE eh facil, mas desktop fiquei curioso.
se a sugestao de rmendes08 dar um feedback para nos :smiley:

Radams_Venceslau

Fala galera, pois é rmendes08 não rolou, continua a mesma coisa porém no lugar de ‘�’ aparece uma ‘?’ no lugar do character acentuado

obg a todos pela tentativa mais segue em aberto…
abrass fica com Deus

rmendes08

É, talvez a solução seja realmente reinstalar o banco usando a codificação ISO-8859-1, ou então fazer uma nova instalação e migrar os dados.

Radams_Venceslau

É verdade vou ver qualquer coisa eu posto aqui se deu certo, mais desde já agradeço aew

Criado 12 de março de 2010
Ultima resposta 14 de mar. de 2010
Respostas 11
Participantes 5