在 Go 中处理自定义函数异常有 3 种方法:使用 panic 内置函数(语法见文章)实战案例:define divide 函数,当除数为 0 时 Panic优点:方便、可自定义错误消息、可在不同函数级别处理错误缺点:破坏程序流程、调试困难
在 Go 中处理自定义函数异常有多种方法。其中一种方法是使用 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
的自定义函数,它将两个数字相除。如果除数为 0,函数会触发异常:
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) // 触发错误 }
输出:
5 错误: 不能除以 0
以上是golang自定义函数实现中的异常处理的详细内容。更多信息请关注PHP中文网其他相关文章!