Olá pessoal, posto o seguinte bloco de código e gostaria da análise de vocês. Segue o bloco:
String consulta = "SELECT * FROM dicas";
try{
stm = conn.createStatement();
rs = stm.executeQuery(consulta);
}catch(SQLException e){
try{
System.out.println("CATCH --- CRIA TABELA");
stm = conn.createStatement();
stm.executeUpdate("CREATE TEXT TABLE dicas (pri BIGINT NOT NULL IDENTITY, codigo CHAR(3), dica VARCHAR(200))");
stm.execute("SET TABLE dicas SOURCE 'dicas.csv'");
rs = stm.executeQuery(consulta);
}catch(SQLException e1){}
}
Então eu perguntou, está correto fazer isso, usar TRY dentro de CATCH?
O que acontece é o seguinte, estou usando o HSQLDB e ele não suporta a declaração SQL “CREATE TABLE IF NOT EXISTS …” e eu precisei dar um jeito. Meu jeito foi consultar a tabela em um TRY, se a tabela existe ótimo, o programa segue lindamente, mas se a tabela não existe vai pra o CATCH que trata “SQLExcepion” e cria a tabela e depois disso volta a fazer a consulta, sendo que esse código do CATCH pode lançar uma nova SQLExcepion, sendo assim tenho que usar novo TRY/CATCH.
Achei meio estranho fazer assim, apesar de rodar beleza. Daí vem as perguntas:
- Está certo trabalhar assim?
- Caso não, como eu deveria fazer?
Obrigado pessoal… Aguardo a ajuda de vocês.
Abraço!