Go语言panic

Go语言panic教程

Go 语言 中,如果我们的 函数 或者程序出现了非常严重的问题,遇到此类问题程序不应该继续往下运行了,那么我们就应该终止程序的执行。

在 Go 语言中,处理类似致命的错误的方法一般是通过 panic 的方式来终止我们程序的执行。

Go语言panic详解

语法

func funcName(param paramType)(returnVal1 returnType){ if cond{ panic("Error Info") } }

说明

我们在定义的函数中,使用 if 判断 ,如果满足 cond 条件,那么直接使用 panic 函数,终止程序的运行。

案例

Go语言panic

panic 终止程序的运行

package main import ( "fmt" "os" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") // panic终止程序的运行 confFile := "cfg.conf" if fileInfo, err := os.Stat(confFile); err != nil{ panic("File not exist") }else { fmt.Println(fileInfo.Size()) } }

程序运行后,控制台输出如下:

33_golang panic.png

我们在 main 函数里面,判断配置文件是否存在,如果配置文件不存在,则是通过 error 的方式返回,那么我们就直接判断 error 是否为空,如果不为空,那么就直接使用 panic 终止程序的运行,否则继续处理程序接下来的逻辑。

因为,我们的文件不存在,因此运行后,程序输出了错误信息之后,直接退出了运行。

Go语言panic

panic 终止程序的运行

package main import ( "fmt" ) func div(dividend, divisor int) int { // 判断除数为0的情况并返回 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) }

程序运行后,控制台输出如下:

34_golang panic.png

我们在 div 函数中在做真正的计算之前,首先使用 if语句判断,如果除数为 0,那么就直接使用 panic 终止程序的运行。

在 main() 函数,调用我们自定义的函数 div 时,我们的除数为0,程序输出了错误信息之后,直接退出了运行。

Go语言panic总结

在 Go 语言中,处理类似致命的错误的方法一般是通过 pannic 的方式来终止我们程序的执行。