Rumah > Artikel > pembangunan bahagian belakang > Bagaimana Saya Boleh Menangani Panik dalam Go dengan Fungsi `recover()`?
Apabila ralat yang tidak dijangka berlaku dalam Go, menyebabkan panik, ia menghentikan pelaksanaan program dengan serta-merta. Walau bagaimanapun, fungsi recover() menyediakan cara untuk mengendalikan panik, membenarkan atur cara untuk menghalangnya daripada ranap.
Pertimbangkan kod berikut, apabila panik berlaku apabila tiada hujah fail disediakan:
package main import ( "fmt" "os" ) func main() { file, err := os.Open(os.Args[1]) if err != nil { fmt.Println("Could not open file") } fmt.Printf("%s", file) }
Untuk mengendalikan panik ini, kita boleh menggunakan fungsi recover() dalam fungsi tertunda:
func main() { defer func() { if err := recover(); err != nil { fmt.Println("Could not open file") } }() file, err := os.Open(os.Args[1]) if err != nil { panic(err) } fmt.Printf("%s", file) }
Jika ralat berlaku semasa membuka fail, panik ditangkap oleh fungsi recover(), dan mesej "Tidak dapat membuka fail" dicetak dan bukannya ranap program.
Dalam Go, panik tidak seharusnya menjadi mekanisme pengendalian ralat lalai . Semakan ralat eksplisit biasanya diutamakan. Walau bagaimanapun, fungsi recover() menyediakan cara untuk mengendalikan kes ekstrem yang melampau dengan panik diperlukan, membenarkan atur cara mengekalkan keadaan berfungsi walaupun ralat yang tidak dijangka berlaku.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Menangani Panik dalam Go dengan Fungsi `recover()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!