English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O tratamento de exceções permite que você lidar com situações anormais de maneira controlada, por exemplo, erros definidos pelo programa.
Quando ocorre uma condição anormal, será gerada uma exceção. O termo 'lançar' significa que o programa atual pára de executar e o controle é redirecionado para o catch subcláusula mais próximo aplicável. Se não houver subcláusula catch aplicável, a execução do programa termina.
O tratamento de exceções JDBC é muito semelhante ao tratamento de exceções Java, mas para JDBC, as exceções mais comuns que você precisa lidar são java.sql.SQLException.
SQLException pode ocorrer tanto no driver quanto no banco de dados. Quando isso acontece, um objeto do tipo SQLException é passado para a cláusula catch.
O objeto SQLException passado possui os métodos disponíveis para obter informações adicionais sobre a exceção.-
Método | Descrição |
---|---|
getErrorCode( ) | Obtenha o número de erro associado à exceção. |
getMessage( ) | Obtenha a mensagem de erro do driver JDBC, tratada pelo driver, ou o número de erro e mensagem do erro de banco de dados Oracle. |
getSQLState( ) | Obtenha a string XOPEN SQLstate. Para erros do driver JDBC, este método não retorna informações úteis. Para erros de banco de dados, será retornado o código xopensqlstate de cinco dígitos. Este método pode retornar null. |
getNextException( ) | Obtenha o próximo objeto Exception na cadeia de exceções. |
printStackTrace( ) | Imprima a exceção atual ou a exceção chamável e sua pilha de chamadas para o fluxo de erro padrão. |
printStackTrace(PrintStream s) | Escreva este objeto descartável e sua pilha de chamadas para o fluxo de saída especificado. |
printStackTrace(PrintWriter w) | Imprima este arquivo único e trace-o para o PrintWriter especificado. |
Ao usar as informações fornecidas pelo objeto Exception, você pode capturar exceções e continuar a execução do programa de maneira apropriada. Esta é a forma geral do bloco try-
try { // O código de exceção suas está entre essas chaves!!! } catch(Exception ex) { // O código de tratamento de exceções suas está entre esses dois // Chaves, semelhantes à cláusula exception // Em PL / no bloco SQL. } finally { // O código que você deve sempre executar está entre esses dois //Chaves. Como fechar a conexão com o banco de dados. }
Estude o seguinte código de exemplo para entendertry....catch...finallyUso do bloco.
//Passo1.Importar o pacote necessário import java.sql.*; public class JDBCExample { // Nome do driver JDBC e URL do banco de dados static final String DB_URL = \//localhost/EMP\"; // Credenciais do banco de dados static final String USER = \ static final String PASS = \ public static void main(String[] args) { Connection conn = null; try{ //Passo2Registrar driver JDBC Class.forName("com.mysql.jdbc.Driver"); //Passo3Conectar System.out.println("Conectando ao banco de dados..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //Passo4Executar consulta System.out.println("Criando statement..."); Statement stmt = conn.createStatement(); String sql; sql = \ ResultSet rs = stmt.executeQuery(sql); //Passo5Extrair dados do conjunto de resultados while(rs.next()){ //Procurar por nome de coluna int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Mostrar valor System.out.print("ID: ", + id); System.out.print(", Idade: ", + age); System.out.print(", Primeiro: ", + first); System.out.println(", Último: ", + last); } //Passo6Limpar o ambiente rs.close(); stmt.close(); conn.close(); catch(SQLException se){ //Tratamento do erro JDBC se.printStackTrace(); catch(Exception e){ //Tratamento do erro Class.forName e.printStackTrace(); finally{ //Bloqueio final para evitar a fuga de recursos try{ if(conn!=null) conn.close(); catch(SQLException se){ se.printStackTrace(); } }//Fim do try System.out.println("Goodbye!"); }//Fim do main }//Fim do JDBCExample
Agora, vamos compilar o exemplo acima, conforme mostrado a seguir:
C:\>javac JDBCExample.java C:\>
ExecuçãoJDBCExampleSe não houver problemas, ele produzirá os seguintes resultados; caso contrário, ele capturará o erro correspondente e exibirá a mensagem de erro.-
C:\>java JDBCExample Conectando ao banco de dados... Criando sentença... ID: 100, Idade: 18, Primeiro: Zara, Último: Ali ID: 101, Idade: 25, Primeiro: Mahnaz, Último: Fatma ID: 102, Idade: 30, Primeiro: Zaid, Último: Khan ID: 103, Idade: 28, Primeiro: Sumit, Último: Mittal C:\>
Tente o exemplo acima, passando um nome de banco de dados incorreto ou um nome de usuário ou senha incorretos, e verifique os resultados.