本文主要是介绍GO语言异常处理机制panic和recover分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
package main
import (
"log"
"strconv"
)
//捕获因未知输入导致的程序异常
func catch(nums ...int) int {
defer func() {
if r := recover(); r != nil {
log.Println("[E]", r)
}
}()
return nums[1] * nums[2] * nums[3] //index out of range
}
//主动抛出 panic,不推荐使用,可能会导致性能问题
func toFloat64(num string) (float64, error) {
defer func() {
if r := recover(); r != nil {
log.Println("[W]", r)
}
}()
if num == "" {
panic("param is null") //主动抛出 panic
}
return strconv.ParseFloat(num, 10)
}
func main() {
catch(2, 8)
toFloat64("")
}
这篇关于GO语言异常处理机制panic和recover分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!