In Go, Panic dan Recover digunakan untuk pengendalian pengecualian. Panik digunakan untuk melaporkan pengecualian, dan Pulih digunakan untuk pulih daripada pengecualian. Panik akan menghentikan pelaksanaan program dan membuang nilai pengecualian antara muka jenis{}. Pulih boleh menangkap pengecualian daripada fungsi tertunda atau goroutin, mengembalikan nilai pengecualian antara muka jenis{} yang dilemparkannya.
Panic dan Recover dalam pengendalian pengecualian bahasa Go
Dalam bahasa Go, kata kunci panik
dan recover
ialah mekanisme penting untuk pengendalian pengecualian. panik
digunakan untuk melaporkan pengecualian dan recover
digunakan untuk memulihkan daripada pengecualian. panic
和 recover
关键字是异常处理的重要机制。panic
用于报告异常,而 recover
用于从异常中恢复。
Panic
panic
关键字用于报告一个异常条件,它会立即停止程序执行,并打印堆栈信息。使用 panic
时,程序会抛出一个 interface{}
类型的异常值。例如:
package main func main() { panic("发生了异常") }
Recover
recover
关键字用于从 panic
中恢复。它可以从当前 goroutine 返回一个 interface{}
类型的异常值。recover 只能在延迟函数或 goroutine 中使用。例如:
package main import "fmt" func main() { defer func() { if r := recover(); r != nil { fmt.Println("捕获到异常:", r) } }() panic("发生了异常") }
实战案例
假设我们有一个函数 divide
,它计算两个数的商:
func divide(a, b int) float64 { if b == 0 { panic("除数不能为零") } return float64(a) / float64(b) }
为了处理 divide
函数中可能发生的异常,我们可以使用 recover
Panic
🎜🎜 Kata kuncipanik
, atur cara akan membuang nilai pengecualian jenis antara muka{}
. Contohnya: 🎜func main() { defer func() { if r := recover(); r != nil { fmt.Println("捕获到异常:", r) } }() fmt.Println(divide(10, 2)) fmt.Println(divide(10, 0)) }
recover
kata kunci digunakan untuk memulihkan daripada panik
. Ia boleh mengembalikan nilai pengecualian jenis antara muka{}
daripada goroutine semasa. recover hanya boleh digunakan dalam fungsi tertunda atau goroutine. Contohnya: 🎜5 捕获到异常: 除数不能为零
recover
Kata kunci: 🎜rrreee🎜Output: 🎜rrreeeAtas ialah kandungan terperinci panik dan pemulihan dalam pengendalian pengecualian Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!