参考网址
haicoder.net/golang/gola…
前言
在 Go 语言中,如果我们的函数或者程序出现了非常严重的问题,遇到此类问题程序不应该继续往下运行了,那么我们就应该终止程序的执行。
在 Go 语言中,处理类似`致命`的错误的方法一般是通过 panic 的方式来终止我们程序的执行。
go语言panic详解
一般语法如下:
func funcName(param paramType)(returnVal1 returnType){
if cond{
panic("Error Info")
}
}
说明:我们在定义的时候,使用if判断,如果满足if的条件,那么直接使用panic函数,终止程序的进行 。
案例1
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
confFile := "cfg.conf"
if fileInfo, err := os.Stat(confFile); err != nil{
panic("File not exist")
} else {
fmt.Println(fileInfo.Size())
}
}
我们在 main 函数里面,判断配置文件是否存在,如果配置文件不存在,则是通过 error 的方式返回,
那么我们就直接判断 error 是否为空,如果不为空,那么就直接使用 panic 终止程序的运行,否则继续处理程序接下来的逻辑。
因为,我们的文件不存在,因此运行后,程序输出了错误信息之后,直接退出了运行。
案例2
package main
import (
"fmt"
)
func div(dividend, divisor int) int {
if divisor == 0 {
panic("divisor is zero")
}
return dividend / divisor
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
ret := div(2, 0)
fmt.Println("Div ok, Ret =", ret)
}
我们在 div 函数中在做真正的计算之前,首先使用 if语句判断,如果除数为 0,那么就直接使用 panic 终止程序的运行。
在 main() 函数,调用我们自定义的函数 div 时,我们的除数为0,程序输出了错误信息之后,直接退出了运行。
Go语言panic总结
在 Go 语言中,处理类似致命的错误的方法一般是通过 pannic 的方式来终止我们程序的执行。