Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Pembangun Go Membandingkan Mesej Ralat Tanpa Kaedah `GetMessage()`?

Bagaimanakah Pembangun Go Membandingkan Mesej Ralat Tanpa Kaedah `GetMessage()`?

Mary-Kate Olsen
Lepaskan: 2024-11-30 14:14:19
asal
1088 orang telah melayarinya

How Do Go Developers Compare Error Messages Without a `GetMessage()` Method?

Membandingkan Mesej Ralat dalam Go

Apabila mengendalikan ralat dalam Java, pembangun sering bergantung pada kaedah Exception.GetMessage() untuk mengekstrak penerangan ralat . Golang, bagaimanapun, tidak mempunyai kaedah terbina dalam untuk mendapatkan semula mesej sedemikian.

Untuk menangani perkara ini, pembangun Go menggunakan pendekatan tersuai untuk membandingkan mesej ralat. Daripada menyimpan mesej dalam objek ralat, mereka mencipta pembolehubah ralat peringkat pakej yang merangkumi kod atau penerangan ralat tertentu:

var errExample = errors.New("this is an example")
Salin selepas log masuk

Apabila mengembalikan ralat, pembangun menetapkan pembolehubah ini untuk menunjukkan jenis ralat tertentu yang berlaku . Coretan berikut menunjukkan pendekatan ini:

if some_err := some_package.DoSomething(); some_err != nil {
    if some_err == errExample {
        // handle it
    }
}
Salin selepas log masuk

Dalam kes ini, pernyataan if menyemak sama ada ralat yang dikembalikan oleh DoSomething() adalah sama dengan pembolehubah errExample. Jika ya, ralat itu dikendalikan dengan sewajarnya.

Untuk meluaskan jangkauan pembolehubah ralat ini, pembangun boleh mengeksportnya di luar pakej menggunakan kata kunci eksport:

var ErrExample = errors.New("this is an example")
Salin selepas log masuk

Ini membenarkan kod dalam berbeza pakej untuk dibandingkan dengan pembolehubah ralat yang dieksport:

if err == somepackage.ErrExample {
    // handle it
}
Salin selepas log masuk

Dengan mengikuti pendekatan ini, pembangun boleh membandingkan mesej ralat di Golang dengan berkesan, walaupun bahasa tidak mempunyai kaedah GetMessage() khusus.

Pertimbangan Tambahan:

Adalah penting untuk mengelakkan membandingkan mesej ralat terhadap rentetan yang dikembalikan oleh kaedah ralat.Error() . Ini boleh membuat kod rapuh, kerana mesej ralat tertakluk kepada perubahan dari semasa ke semasa. Sebaliknya, adalah disyorkan untuk menggunakan pembolehubah ralat yang ditetapkan untuk memastikan konsistensi dalam pengendalian ralat.

Atas ialah kandungan terperinci Bagaimanakah Pembangun Go Membandingkan Mesej Ralat Tanpa Kaedah `GetMessage()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan