Menangani kesalahan

Unduh driver JDBC

Saat menggunakan Driver Microsoft JDBC untuk SQL Server, semua kondisi kesalahan database dikembalikan ke aplikasi Java Anda sebagai pengecualian menggunakan kelas SQLServerException. Metode berikut dari kelas SQLServerException diwarisi dari java.sql.SQLException dan java.lang.Throwable; dan mereka dapat digunakan untuk mengembalikan informasi spesifik tentang kesalahan SQL Server yang telah terjadi:

  • getSQLState() mengembalikan kode status X/Open atau SQL99 standar pengecualian.

  • getErrorCode() mengembalikan nomor kesalahan database tertentu.

  • getMessage() mengembalikan teks lengkap pengecualian. Teks pesan kesalahan menjelaskan masalah, dan sering menyertakan tempat penampung untuk informasi, seperti nama objek, yang disisipkan dalam pesan kesalahan saat ditampilkan.

  • getSQLServerError()mengembalikan objek yang SQLServerError berisi info terperinci tentang pengecualian seperti yang diterima dari SQL Server. Metode ini mengembalikan null jika tidak ada kesalahan server yang terjadi.

Metode SQLServerError kelas berikut dapat digunakan untuk mendapatkan detail selengkapnya tentang kesalahan yang dihasilkan dari server.

  • SQLServerError.getErrorMessage() mengembalikan pesan kesalahan seperti yang diterima dari server.

  • SQLServerError.getErrorNumber() mengembalikan angka yang mengidentifikasi jenis kesalahan.

  • SQLServerError.getErrorState()mengembalikan kode kesalahan numerik dari SQL Server yang mewakili pesan kesalahan, peringatan, atau "tidak ada data yang ditemukan".

  • SQLServerError.getErrorSeverity() mengembalikan tingkat keparahan kesalahan yang diterima.

  • SQLServerError.getServerName()mengembalikan nama komputer yang menjalankan instans SQL Server yang menghasilkan kesalahan.

  • SQLServerError.getProcedureName() mengembalikan nama prosedur tersimpan atau panggilan prosedur jarak jauh (RPC) yang menghasilkan kesalahan.

  • SQLServerError.getLineNumber() mengembalikan nomor baris dalam batch perintah Transact-SQL atau prosedur tersimpan yang menghasilkan kesalahan.

Dalam contoh berikutnya, koneksi terbuka ke database sampel SQL Server AdventureWorks2022 diteruskan ke fungsi dan pernyataan SQL yang salah bentuk dibuat yang tidak memiliki klausa FROM. Kemudian, pernyataan dijalankan dan pengecualian SQL diproses.

public static void executeSQLException(Connection con) {
    try (Statement stmt = con.createStatement();) {
        String SQL = "SELECT TOP 10 * Person.Contact";
        ResultSet rs = stmt.executeQuery(SQL);

        while (rs.next()) {
            System.out.println(rs.getString("FirstName") + " " + rs.getString("LastName"));
        }
    }
    catch (SQLException se) {
        do {
            System.out.println("SQL STATE: " + se.getSQLState());
            System.out.println("ERROR CODE: " + se.getErrorCode());
            System.out.println("MESSAGE: " + se.getMessage());
            System.out.println();
        }
        while (se != null);
    }
}

Lihat juga

Mendiagnosis masalah dengan driver JDBC