golang 异常处理
- panic: 用来创造异常
- recover 用来获取异常,不能直接获取,需要与defer一起使用。
- defer : 在函数结束时调用,处理异常与资源回收等操作。
代码:
package main
import (
"fmt"
"os"
)
func main() {
foo()
fmt.Println("main run other function...")
}
func foo() {
defer func() {
if err := recover(); err != nil {
fmt.Println("catch exception...", err)
}
fmt.Println("other operation...")
}()
_, err := os.Open("E:/not_exists_file")
if err != nil {
panic(err)
}
}