package main import ( "fmt" ) func divide(num1 int, num2 int) { result := num1 / num2 fmt.Printf("%+v / %+v = %+v \n", num1, num2, result) } func main() { divide(1024, 0) // panic: runtime error: integer divide by zero // 重要说明:下面的代码是执行不到的,因为上面出现了panic fmt.Println("后续逻辑……") }
package main import ( "fmt" ) func divide(num1 int, num2 int) { // 使用defer和recover()实现捕获panic错误 defer func() { err := recover() if err != nil { fmt.Println("程序粗错辣~~~", err) // 程序粗错辣~~~ runtime error: integer divide by zero } else { fmt.Println("程序狠正常~~~") } }() result := num1 / num2 fmt.Printf("%+v / %+v = %+v \n", num1, num2, result) } func main() { divide(1024, 0) fmt.Println("后续逻辑……") // 后续逻辑…… }
Copyright © 2024 码农人生. All Rights Reserved