Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Semak Jenis Ralat Tersuai dalam Go?

Bagaimanakah Saya Boleh Semak Jenis Ralat Tersuai dalam Go?

Linda Hamilton
Lepaskan: 2024-12-25 20:43:19
asal
760 orang telah melayarinya

How Can I Check the Type of a Custom Error in Go?

Menyesuaikan Jenis Ralat dalam Go

Memperkayakan aplikasi Go anda dengan jenis ralat tersuai meningkatkan pengendalian ralat, tetapi memanipulasi jenis tersuai ini boleh menjadi mencabar. Mari kita mendalami isu menyemak jenis ralat tersuai.

Masalahnya

Pertimbangkan jenis ralat tersuai berikut:

type ModelMissingError struct {
    msg string // description of error
}

func (e *ModelMissingError) Error() string { return e.msg }
Salin selepas log masuk

Dalam satu kaedah, kami boleh membuang ralat tersuai:

return Model{}, &ModelMissingError{"no model found for id"}
Salin selepas log masuk

Pertanyaan

Untuk menentukan sama ada ralat jenis tersuai tertentu, kita perlu menyemak jenisnya. Walau bagaimanapun, pendekatan if err == model.ModelMissingError gagal.

The Solution

Go menyediakan koma ok idiom untuk menyemak penegasan jenis:

serr, ok := err.(*model.ModelMissingError)
Salin selepas log masuk

Pernyataan ini menegaskan bahawa pembolehubah ralat err memegang model.ModelMissingError type dan memberikan nilai asas kepada pembolehubah serr. Jika err tidak mempunyai jenis yang dijangkakan, pernyataan itu akan mengembalikan sifar untuk serr dan false untuk ok.

Dengan menggunakan simpulan bahasa ok koma, kami boleh mengesahkan jenis ralat tersuai dengan cekap dan mengendalikannya dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Jenis Ralat Tersuai dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan