Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengendalikan ralat jenis tersuai di Golang?
Mencipta jenis ralat tersuai membolehkan anda mengendalikan ralat khusus domain di Golang. Selepas anda membuat jenis ralat, anda boleh menggunakan pernyataan ralat untuk menyemak sama ada jenis ralat sepadan dengan jenis ralat tersuai. Jika terdapat padanan, anda boleh mengakses mesej ralat tersuai. Jika tidak, kendalikan jenis ralat lain.
Cara mengendalikan ralat taip tersuai di Golang
Mencipta jenis ralat tersuai di Golang ialah cara terbaik untuk menentukan ralat khusus domain. Ini membolehkan anda membuat ralat yang mengandungi maklumat tambahan tentang ralat tersebut.
Buat jenis ralat tersuai
Untuk mencipta jenis ralat tersuai, anda boleh menggunakan fungsi errors.New()
terbina dalam: errors.New()
函数:
package errors import "fmt" type MyError struct { msg string } func New(msg string) *MyError { return &MyError{msg: msg} } func (m *MyError) Error() string { return fmt.Sprintf("自定义错误:%s", m.msg) }
Error()
方法返回错误消息。它应该是实现了 error 接口的唯一方法,即它应该返回字符串类型的消息。
处理自定义错误
一旦创建了自定义错误类型,就可以使用 errortype assersions
func process() error { // 调用可能有错误的方法 if err := doSomething(); err != nil { if me, ok := err.(*MyError); ok { // 处理自定义错误 fmt.Println(me.msg) } else { // 处理其他类型的错误 return err } } return nil }
Error()
kaedah Kembalikan mesej ralat. Ia sepatutnya menjadi satu-satunya kaedah yang melaksanakan antara muka ralat, iaitu ia harus mengembalikan mesej jenis rentetan. . nombor ke Contoh fungsi yang mungkin menimbulkan ralat tersuai semasa memanggil rentetan: func convertToString(num int) (string, error) { if num < 0 { return "", errors.New("数字必须为非负数") } return strconv.Itoa(num), nil }Anda boleh menggunakan penegasan ralat untuk mengendalikan ralat tersuai semasa memanggil fungsi ini:
result, err := convertToString(-1) if err != nil { if me, ok := err.(*errors.MyError); ok { fmt.Println(me.msg) // 输出:数字必须为非负数 } }
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan ralat jenis tersuai di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!