Mod pengendalian ralat fungsi Go termasuk: menggunakan ralat.New() untuk membuat ralat, membalut ralat asas dan mengembalikan sifar untuk menunjukkan tiada ralat. Anti-corak termasuk menggunakan nombor atau rentetan ajaib untuk mewakili ralat, mengendalikan ralat secara tersirat, mengabaikan ralat dan corak keluar tertunda. Amalan terbaik: Gunakan errors.New() untuk mencipta dan mengembalikan ralat. Contoh anti-corak: Abaikan ralat yang dikembalikan oleh os.Open(). Mengikuti amalan terbaik dan mengelakkan anti-corak menghasilkan kod yang jelas, boleh diselenggara dan mudah dinyahpepijat.
Corak dan Anti-Corak Pengendalian Ralat Fungsi Go
Berkenaan tentang pengendalian ralat dalam Go, terdapat banyak cara untuk melakukannya. Walau bagaimanapun, tidak semua model sesuai. Artikel ini akan meneroka amalan terbaik dan anti-corak untuk pengendalian ralat fungsi dalam Go dan memberikan contoh kehidupan sebenar untuk menunjukkannya.
Amalan Terbaik:
errors.New()
untuk mencipta ralat: errors.New()
创建错误:这是一个创建新错误的最常见方法,它可以返回带有简洁描述的 error
值。nil
表示没有错误:如果函数未遇到错误,则应返回 nil
。反模式:
if err != nil { ... }
来检查错误,然后直接返回,因为这会使错误处理难以跟踪。if err != nil { return err }
的模式会使代码难以阅读和维护。真实案例:
最佳实践:以下函数使用 errors.New()
创建一个新的错误,并返回它以向调用者指示文件打开失败:
func OpenFile(path string) (*os.File, error) { f, err := os.Open(path) if err != nil { return nil, errors.New("failed to open file: " + err.Error()) } return f, nil }
反模式:以下函数没有处理 os.Open()
Ini ialah cara paling biasa untuk mencipta ralat baharu, yang mengembalikan
Balut ralat dengan ralat asas:
Jika fungsi menerima ralat, ia boleh dibalut dengan ralat baharu untuk menyediakan lebih banyak konteks tentang sumber ralat. 🎜🎜Kembalikannil
untuk menunjukkan tiada ralat: 🎜Jika fungsi tidak menemui ralat, ia harus mengembalikan nil
. 🎜🎜Jangan gunakan pembolehubah ralat global: 🎜Menggunakan pembolehubah ralat global boleh mewujudkan keadaan perlumbaan dan menyukarkan kod untuk nyahpepijat. 🎜🎜Mengendalikan Ralat: 🎜Semua ralat harus dikendalikan dalam fungsi dan bukannya diabaikan. Sebaik-baiknya, ralat harus dikembalikan yang menunjukkan bahawa fungsi itu gagal. 🎜🎜Anti-corak: 🎜🎜🎜🎜🎜Menggunakan nombor ajaib atau rentetan tetap untuk mewakili ralat: 🎜Ini boleh menyukarkan kod untuk dikekalkan dan dilanjutkan. 🎜🎜Pengendalian ralat tersirat: 🎜Jangan gunakan if err != nil { ... }
untuk menyemak ralat dan kemudian kembali terus, kerana ini akan menyukarkan pengendalian ralat trek. 🎜🎜Abaikan Ralat: 🎜Sentiasa mengendalikan ralat, walaupun anda fikir ia tidak mungkin berlaku. 🎜🎜Gunakan corak keluar tertunda: 🎜Menggunakan corak if err != nil { return err }
pada penghujung fungsi boleh membuat kod sukar dibaca dan dikekalkan. 🎜🎜Kes sebenar: 🎜🎜🎜🎜Amalan terbaik: 🎜Fungsi berikut menggunakan errors.New()
untuk mencipta ralat baharu dan mengembalikannya kepada pemanggil Menunjukkan bahawa fail dibuka gagal: 🎜func OpenFile(path string) *os.File { f, _ := os.Open(path) return f }
os.Open()
, yang mungkin menyebabkan program ranap: 🎜rrreee🎜Yang terbaik cara untuk melakukan ini adalah dengan mengikuti langkah-langkah yang digariskan dalam artikel ini Dengan amalan dan mengelakkan anti-corak, anda boleh menulis kod yang jelas, boleh diselenggara dan mudah untuk nyahpepijat. 🎜Atas ialah kandungan terperinci Corak dan anti-corak pengendalian ralat fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!