Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengenalpasti Ralat \'Pangkalan Data Tidak Wujud\' Menggunakan `db.Exec(...)` dalam Go?

Bagaimana untuk Mengenalpasti Ralat \'Pangkalan Data Tidak Wujud\' Menggunakan `db.Exec(...)` dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-03 05:47:30644semak imbas

How to Identify a

Bagaimana untuk Menentukan Keadaan Ralat tertentu daripada db.Exec(...) dalam Go?

Dalam percubaan untuk memadamkan Postgres pangkalan data menggunakan pemacu lib/pq, pembangun mungkin menghadapi cabaran dalam membezakan antara ralat standard dan "pangkalan data tidak wujud". Untuk mengendalikan senario ini dengan berkesan, adalah penting untuk memahami mekanisme pengendalian ralat yang disediakan oleh pemandu.

Pakej lib/pq mengembalikan ralat sebagai *pq.Error structs, menawarkan pelbagai medan untuk pemeriksaan ralat terperinci. Untuk mengakses medan ini, gunakan kod berikut:

<code class="go">if err, ok := err.(*pq.Error); ok {
    // Manipulate err.Code, err.Message, etc.
}</code>

*pq.Error menyediakan medan berikut:

<code class="go">type Error struct {
    Severity         string
    Code             ErrorCode
    Message          string
    Detail           string
    Hint             string
    Position         string
    InternalPosition string
    InternalQuery    string
    Where            string
    Schema           string
    Table            string
    Column           string
    DataTypeName     string
    Constraint       string
    File             string
    Line             string
    Routine          string
}</code>

Setiap medan mewakili aspek ralat tertentu, seperti keterukan ralat, kod, mesej dan objek pangkalan data yang berkaitan. Untuk kes khusus ralat "pangkalan data tidak wujud", rujuk dokumentasi Postgres untuk menentukan kod ralat yang sepadan dan lakukan perbandingan terhadap err.Code seperti yang diperlukan: https://www.postgresql.org/docs/current/errcodes-appendix .html

Atas ialah kandungan terperinci Bagaimana untuk Mengenalpasti Ralat 'Pangkalan Data Tidak Wujud' Menggunakan `db.Exec(...)` dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn