我刚刚写了一个go异常统一处理包,因为go没有try catch所以我自己写了一个,为什么要写它呢?因为在一个大型服务端程序中,满屏的painc,是不是有种要疯掉地感觉?而且这种满屏的painc(...) 看着看着人就懵逼,代码还怎么往下写
http://github.com/haoweitech/goext
安装方法 go get github.com/haoweitech/goext/ex
如果你觉得能帮上你,请点一下小星星,谢谢大家
```go
package main
import (
"fmt"
"github.com/haoweitech/goext/ex"
"os"
)
func main() {
fmt.Println("测试")
ex.Try(func() {
file, err := os.Open("/tmp/1.txt") // 也可以直接painc err,因为nil不会抛出异常
if err != nil {
panic(err)
}
err = file.Close()
panic(err)
}).Catch(&os.PathError{}, func(err interface{}) {
fmt.Println("IO异常未找到文件")
}).Catch(&ex.Error{}, func(err interface{}) {
fmt.Println("程序有异常")
}).Finally(func() {
fmt.Println("我是清洁工")
})
}
```
有疑问加站长微信联系(非本文作者)