看到mailing list里在战,其实也很容易实现啊

func Try(fun func(), handler func(interface{})) {
        defer func() {
                if err := recover(); err != nil {
                        handler(err)
                }
        }()
        fun()
}

这样用

func main() {
        Try(func() {
                panic("foo")
        }, func(e interface{}) {
                print(e)
        })
}