golang异常处理策略推荐

golang默认的异常处理都是往外送error,于是导致代码里大量出现 形如

if err!=nil{

xxxxx

}

的代码。已经被无数人吐槽了。

我们在实际工作中,总结并规范了一下这部分的代码风格。这在进行中大型项目开发的时候一方面能保证代码的清爽,二方面又能维持golang这种error作为返回值往外送的好处。

大致使用了以下几个技术点:

1 defer和闭包

2 具名返回值

3 panic和recover

func doTest3()(res string,err  error){
		defer func() {
		err=recover().(error)
		fmt.Println(err)
	}()
	e:=doError()
	checkError(e)
	return "it is outputed from Do Test func",nil
}
func checkError(err error){
	if err!= nil {
		panic(err)
	}
}
func doError()error{
	return errors.New("I‘m Error")
}

 

golang异常处理策略推荐

上一篇:【算法】关于图论中的最小生成树(Minimum Spanning Tree)详解


下一篇:剑指 Offer 37. 序列化二叉树 二叉树 字符串