Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengendalikan Ralat \'Pangkalan Data tidak wujud\' dengan pq.Error dalam Postgres?

Bagaimana untuk Mengendalikan Ralat \'Pangkalan Data tidak wujud\' dengan pq.Error dalam Postgres?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 07:33:02493semak imbas

How to Handle

Kod Ralat dalam Postgres Selepas db.Exec()

Apabila melaksanakan pertanyaan menggunakan db.Exec(), ralat yang dikembalikan boleh memberikan maklumat berharga tentang status operasi. Walaupun mesej ralat sebenar mungkin berbeza-beza, pemandu Postgres menyediakan cara untuk memeriksa kod ralat untuk keadaan tertentu.

Mengakses Kod Ralat

Untuk mengakses kod ralat daripada ralat yang dikembalikan oleh db.Exec(), anda boleh menaip menegaskannya pada jenis *pq.Error dan kemudian gunakan medan Kodnya. Berikut ialah contoh:

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

Kod Ralat untuk "Pangkalan Data tidak wujud"

Malangnya, Postgres tidak menyediakan kod ralat khusus untuk "pangkalan data tidak wujud "kesilapan. Medan Kod ralat mungkin akan ditetapkan kepada "42P01" (untuk "ralat sintaks"), tetapi ini tidak dijamin.

Menyemak Kod Ralat Tertentu

Memandangkan tiada kod ralat khusus untuk ralat "pangkalan data tidak wujud", anda perlu menghuraikan sendiri rentetan mesej ralat secara manual. Anda boleh menggunakan pakej rentetan untuk melakukan ini dengan berkesan:

<code class="go">if strings.Contains(err.Error(), "existence") && strings.Contains(err.Error(), "database") {
    // Database does not exist
}</code>

Medan Ralat Tambahan

Selain kod ralat, jenis pq.Error menyediakan medan lain yang boleh memberikan konteks yang berharga, seperti:

  • Mesej: Rentetan mesej ralat
  • Perincian: Maklumat terperinci tentang ralat
  • Petunjuk: Petua tentang cara untuk selesaikan ralat
  • Kedudukan: Kedudukan dalam pertanyaan input tempat ralat berlaku
  • Di mana: Sumber ralat dalam pertanyaan

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat \'Pangkalan Data tidak wujud\' dengan pq.Error dalam Postgres?. 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