Pengendalian Ralat dalam Penangguhan dengan Pembolehubah Ralat Tertunda
Dalam Go, penyataan tangguh digunakan untuk memastikan pelaksanaan fungsi selepas fungsi sekeliling telah kembali. Ini berguna untuk tugas pembersihan atau pengurusan sumber. Walau bagaimanapun, apakah yang berlaku apabila pernyataan penangguhan mengembalikan ralat?
Mengendalikan Ralat Tertunda
Pertimbangkan fungsi yang cuba membuka sambungan pangkalan data dan mengembalikan sama ada sambungan atau kesilapan. Fungsi ini menggunakan logger yang mesti disegerakkan sebelum keluar. Kaedah Sync() logger mengembalikan ralat yang sedang diabaikan.
Amalan Terbaik
Pendekatan yang disyorkan untuk mengendalikan ralat tertunda ialah menamakan dan memulakan ralat yang kembali berubah-ubah di mana-mana sahaja di dalam fungsi. Dengan menamakan pembolehubah ralat, ia menjadi lebih mudah untuk menjejaki ralat semasa ujian dan penyahpepijatan.
Sebagai contoh, kod asal boleh diubah suai seperti berikut:
func OpenDbConnection(connectionString string, logSql bool) (*gorm.DB, error) { logger := zap.NewExample().Sugar() defer func() { if err := logger.Sync(); err != nil { return } }() // some logic here return db, err }
Kelebihan
Pendekatan ini mempunyai beberapa kelebihan:
Kesimpulan
Apabila mengendalikan ralat tertunda, amalan terbaik untuk menamakan dan memulakan pembolehubah ralat yang kembali di dalam fungsi. Ini membolehkan pengendalian ralat yang betul dan memudahkan penyahpepijatan.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengendalikan Ralat yang Dipulangkan daripada Penyata Tangguh dalam Go dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!