这两个内置函数,用来处理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.