Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memastikan Pengendalian Ralat Semasa Pemadaman Entiti dalam GORM apabila Baris Tidak Ditemui?

Bagaimana untuk Memastikan Pengendalian Ralat Semasa Pemadaman Entiti dalam GORM apabila Baris Tidak Ditemui?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 18:02:29442semak imbas

How to Ensure Error Handling During Entity Deletion in GORM when Rows are Not Found?

Pengendalian Ralat semasa Pemadaman Entiti dalam GORM

Apabila bekerja dengan pangkalan data, adalah penting untuk menangani kemungkinan ralat dengan bijak. Dalam GORM, fungsi Padam, bertujuan untuk mengalih keluar entiti daripada pangkalan data, mengemukakan isu khusus di mana berbilang panggilan dengan pengecam yang sama tidak mencetuskan ralat.

Gelagat Lalai

Oleh lalai, GORM tidak menganggap cuba memadamkan baris yang tidak wujud dalam pangkalan data sebagai ralat. Oleh itu, fungsi Padam hanya mengembalikan sifar dalam kes sedemikian, walaupun ia gagal mengalih keluar entiti.

Mengenal pasti Punca Punca

Tingkah laku ini berpunca daripada fakta bahawa GORM mengikut standard SQL, yang tidak mentakrifkan pemadaman baris yang tidak wujud sebagai ralat. Akibatnya, GORM sememangnya tidak membuang ralat apabila anda cuba memadamkan baris yang tidak wujud.

Pengendalian Ralat Tersuai

Jika anda perlu mengembalikan ralat semasa cuba memadamkan baris yang tidak wujud, anda perlu menyemak medan RowsAffected secara manual pada hasil fungsi Delete. Begini cara anda boleh mengubah suai kod anda:

<code class="go">func DeleteCategory(id uint) error {
    c := Category{ID: id}

    db := db.Delete(&c)
    if db.Error != nil {
        return db.Error
    } else if db.RowsAffected < 1 {
        return fmt.Errorf("row with id=%d cannot be deleted because it doesn't exist", id)
    }

    return nil
}</code>

Dalam kod yang diubah suai ini:

  • Kami mula-mula menyemak sebarang ralat lain yang mungkin berlaku semasa pelaksanaan fungsi Padam.
  • Jika db.Error adalah sifar, kami menyemak medan RowsAffected. Jika kurang daripada 1, ini bermakna tiada baris terjejas, menunjukkan bahawa baris dengan id yang diberikan tidak wujud.
  • Dalam kes itu, kami mengembalikan mesej ralat tersuai untuk menunjukkan kegagalan operasi.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Pengendalian Ralat Semasa Pemadaman Entiti dalam GORM apabila Baris Tidak Ditemui?. 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