Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengembalikan Ralat jika Fungsi Go Panik?
Kembali dari Defer in Go
Anda menghadapi isu di mana anda ingin mengembalikan ralat jika fungsi panik dalam Go. Berikut ialah analisis dan pembetulan untuk kod anda:
func getReport(filename string) (rep report, err error) { rep.data = make(map[string]float64) defer func() { if r := recover(); r != nil { fmt.Println("Recovered in f", r) switch x := r.(type) { case string: err = errors.New(x) case error: err = x default: err = errors.New("Unknown panic") } rep = nil // Invalidate rep } }() panic("Report format not recognized.") // rest of the getReport function... }
Konsep Panik dan Tangguh
Pengubahsuaian dalam Kod:
Dengan perubahan ini, fungsi getReport anda akan mengembalikan ralat jika ia panik disebabkan format laporan yang tidak sah. Mesej ralat ialah sama ada nilai panik (jika rentetan) atau ralat generik yang menunjukkan panik yang tidak diketahui.
Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Ralat jika Fungsi Go Panik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!