Ralat pengendalian dalam bahasa Go agak berbeza daripada bahasa lain Jenis error
biasanya digunakan untuk mewakili hasil fungsi Jika fungsi gagal dilaksanakan, nilai ralat dikembalikan. Dalam bahasa Go, tiada mekanisme pengecualian, dan semua ralat mesti dikembalikan dan dikendalikan. Apabila mengendalikan ralat, selalunya perlu untuk menukar maklumat ralat kepada output rentetan atau menulis log. Terdapat dua cara untuk
menukar jenis error
kepada rentetan, iaitu menggunakan kaedah error
antara muka Error()
dan menggunakan fungsi fmt
pakej Sprintf()
.
error
Antara muka ialah spesifikasi yang mengandungi satu kaedah Error() string
Jenis yang melaksanakan antara muka ini mewakili keadaan ralat. Kita boleh menggunakan kaedah ini untuk mendapatkan perwakilan rentetan ralat.
Kod sampel:
package main import ( "errors" "fmt" ) func main() { err := errors.New("发生了一个错误") fmt.Println(err.Error()) }
Output program:
发生了一个错误
Ini menukarkan jenis error
kepada jenis rentetan.
Selain menggunakan kaedah error
antara muka Error()
untuk menukar ralat, kita juga boleh menggunakan fungsi fmt
dalam Sprintf()
pakej ke ralat format Tukar kepada output rentetan.
Kod sampel:
package main import ( "errors" "fmt" ) func main() { err := errors.New("发生了一个错误") fmt.Println(fmt.Sprintf("%v", err)) }
Output program:
发生了一个错误
Seperti yang anda lihat, menggunakan fungsi fmt.Sprintf()
untuk mengeluarkan ralat dan menggunakan antara muka error
Error()
ralat keluaran kaedah Kandungan adalah sama.
Selain mengeluarkan maklumat ralat, kami juga boleh menulis ralat untuk log fail, yang memudahkan penyelesaian masalah kemudian.
Kod sampel:
package main import ( "errors" "log" ) func main() { err := errors.New("发生了一个错误") log.Println("错误信息:", err) }
Keluaran program:
2021/08/12 20:06:19 错误信息: 发生了一个错误
Seperti yang anda lihat, gunakan fungsi log
pakej Println()
untuk menulis maklumat ralat pada log fail.
Dalam bahasa Go, terdapat dua cara untuk menukar jenis error
kepada rentetan, iaitu menggunakan kaedah error
antara muka Error()
dan menggunakan fmt
pakej Fungsi Sprintf()
. Pada masa yang sama, kami juga boleh menulis maklumat ralat pada fail log untuk memudahkan penyelesaian masalah.
Atas ialah kandungan terperinci golang err 转string. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!