golang中defer和recover的使用

不羁的心 提交于 2019-12-05 00:15:04

defer 内建函数,所在方法里退出时调用,一个方法里若有多个defer语句,则先声明的后被调用,一般与recover()函数一起配合使用,recover()一般用于捕捉panic抛出的异常,比如:panic(11), 捕捉到的就是11

func main() {

	defer func() {
		if v := recover();v == 11 {
			fmt.Printf("v: %#v\n",v)
		}
		fmt.Printf("defer1...\n")
	}()

	defer func() {
		fmt.Printf("defer2...\n")
	}()

	array := [2]int{1,2}
	fmt.Println("array: ",array[1])
	panic(11)

	/*输出:
	array:  2
	defer2...
	v: 11
	defer1...
	*/
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!