mszhe的技术分享 人心惟危,道心惟微。惟精惟一,允执厥中。

golang_panic_recover

2017-09-28

阅读:


package main

import (
	"errors"
	"log"
	"fmt"
)

func main() {
	defer func() {
		if err := recover(); err != nil {
			switch x := err.(type) {
			case string:
				err = errors.New(x)
			case error:
				err = x
			default:
				err = errors.New("Unknow panic ")
			}
			log.Fatal(err)
		}
	}()
	panic(1)
	fmt.Println(12) // not executed
}

下一篇 undertow