本文共 669 字,大约阅读时间需要 2 分钟。
painc是一个内建函数,可以中断原有的控制流程,进入一个“恐慌”的流程(就是意思我遇到问题了,不知道该咋办,我好慌),这个过程称为错误处理流程。
恐慌可以直接调用painc产生,也可以由运行时的错误产生,例如数组越界等。
painc()函数能接受任何类型的数据。格式如下。
例如:
painc(404)painc("error")painc(Error("file not exists"))
通俗点讲,就是你遇见问题了 painc会终止程序,你没有在程序中添加任何其他措施的话,就打印painc的详细或者内容,然后程序停止运行。但是前面无论产生什么错误都不会影响到defer的执行
func main() { defer func() { fmt.Println("test") panic("defer painc") //执行打印defer painc后程序就终止运行了后面的都没执行 fmt.Println("test1") //未执行 }() fmt.Println("测试") panic("test painc") //执行打印test painc后 程序就终止运行了后面的都没执行 fmt.Println("测试1") //未执行 x() //未执行}func x() { fmt.Println("x")}
输出结果如下:
可以看出painc的结果都被输出到 painc下面了,测试1和test1及x函数都没有执行,除了defer没有影响,但是defer中的painc也终止了。
转载地址:http://yvqen.baihongyu.com/