Membandingkan Mesej Ralat dalam Go
Di Java, anda boleh menggunakan GetMessage() untuk mendapatkan semula mesej ralat daripada Exception. Walau bagaimanapun, dalam Go, tiada kaedah yang setara ditakrifkan untuk jenis ralat. Sebaliknya, teknik pengendalian ralat tersuai mesti digunakan.
Pengendalian Ralat Tersuai
Satu pendekatan ialah mentakrifkan pembolehubah peringkat pakej untuk mewakili mesej ralat khusus yang anda mahu semak untuk. Contohnya:
var errExample = errors.New("this is an example")
Apabila mengembalikan ralat, anda boleh menggunakan pembolehubah ini dan bukannya rentetan ralat generik:
if err := some_package.DoSomething(); err != nil { if err == errExample { // handle it however. } }
Mengeksport Pembolehubah Ralat
Jika kod di luar pakej perlu mengakses ralat, anda boleh mengeksport pembolehubah menggunakan modal letter:
var ErrExample = errors.New("this is an example")
Ini membolehkan anda membandingkan ralat dengan pembolehubah yang dieksport:
if err == somepackage.ErrExample { // handle it }
Contoh
Tahan godaan untuk membandingkan dengan rentetan yang dikembalikan oleh kaedah Ralat() ralat. Ini boleh mengakibatkan kod rapuh. Contohnya:
Sebaliknya, gunakan pendekatan pengendalian ralat tersuai yang digariskan di atas.if err.Error() == "this is an example" { // this is not recommended }
Atas ialah kandungan terperinci Bagaimanakah Saya Membandingkan dan Mengendalikan Ralat dalam Go dengan Berkesan, Tidak seperti GetMessage() Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!