package main import "fmt" func divide() { num1 := 10 num2 := 0 fmt.Printf("%v / %v = %v \n", num1, num2, num1/num2) } func main() { divide() fmt.Println("后续逻辑……") } //========== 输出结果·开始 ==========// // panic: runtime error: integer divide by zero // // goroutine 1 [running]: // main.divide() // /inetpub/wwwroot/go/cmd/main.go:8 +0x2a // main.main() // /inetpub/wwwroot/go/cmd/main.go:12 +0x19 // exit status 2 //========== 输出结果·结束 ==========//
package main import "fmt" func divide() { // 使用defer和recover()实现捕获panic错误 defer func() { err := recover() if err != nil { fmt.Println("程序粗错辣~", err) } else { fmt.Println("程序狠正常~") } }() num1 := 10 num2 := 0 fmt.Printf("%v / %v = %v \n", num1, num2, num1/num2) } func main() { divide() fmt.Println("后续逻辑……") } //========== 输出结果·开始 ==========// // 程序粗错辣~ runtime error: integer divide by zero // 后续逻辑…… //========== 输出结果·结束 ==========//
Copyright © 2023 码农人生. All Rights Reserved