Terdapat tiga cara untuk mengendalikan pengecualian fungsi tersuai dalam Go: gunakan fungsi terbina dalam panik (lihat artikel untuk sintaks) Kes praktikal: tentukan fungsi bahagi, apabila pembahagi ialah 0, kelebihan panik: mudah, mesej ralat boleh disesuaikan, boleh digunakan dalam fungsi yang berbeza Kelemahan ralat pengendalian tahap: mengganggu aliran program, kesukaran dalam penyahpepijatan
Terdapat banyak cara untuk mengendalikan pengecualian fungsi tersuai dalam Go. Satu cara ialah menggunakan fungsi terbina dalam panic
. panik
menghantar kawalan program kepada fungsi recover
, membolehkan anda mengendalikan pengecualian dan menyambung semula pelaksanaan program dengan selamat. panic
内置函数。panic
会将程序控制权传递给 recover
函数,从而允许您处理异常并安全地恢复程序执行。
package main import "fmt" func main() { f := func() { panic("custom error") } defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() f() }
注意:defer
语句必须放置在 panic
语句之前,以便在发生 panic
时被调用。
我们定义了一个名为 divide
package main import "fmt" func main() { divide := func(numerator, denominator int) float64 { if denominator == 0 { // 触发错误 panic("不能除以 0") } return float64(numerator) / float64(denominator) } defer func() { if r := recover(); r != nil { fmt.Println("错误:", r) } }() result := divide(10, 2) fmt.Println(result) // 输出:5 result = divide(10, 0) // 触发错误 }
tunda
pernyataan mesti diletakkan sebelum pernyataan panic
supaya apabila panik
berlaku adalah dipanggil. Kes praktikalbahagi
, yang membahagi dua nombor. Jika pembahagi ialah 0, fungsi mencetuskan pengecualian: 5 错误: 不能除以 0
Atas ialah kandungan terperinci Pengendalian pengecualian dalam pelaksanaan fungsi tersuai golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!