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!