这两个内置函数,用来处理go的运行时错误。

panic用来主动抛出错误,

recover用来捕获panic抛出的错误。

recover()和defer一起使用,

但是recover()只有在defer后面的函数体内被直接调用,

才能捕获panic。

~~~~~~~~~~~~~~~

package main

import (
	"fmt"
)

func except() {
	fmt.Println("in defer inner ")
	recover()
	fmt.Println("out defer inner")
}

func main() {

	defer except()

	fmt.Println("in main inner")
	panic("test panic")
	fmt.Println("out main inner")

}

  输出:

D:/Go/Development/src/demo/demo.exe  [D:/Go/Development/src/demo]
in main inner
in defer inner
out defer inner
成功: 进程退出代码 0.

  

05-11 17:10