
Go语言的一大特点就是简洁高效,最近开始有越来越多的团队和开发人员开始尝试使用golang进行开发。Golang自带了很多原生的包,可以满足基础的开发需要,但是就如语言本身一样,自带的各种package也跟golang一样追求高效简洁,有时候甚至有些简陋。
errors就是一个“简陋”的原生package,原生的errors只支持一个方法 1
errors.New("text")
显然这并不能完全满足我们的需求。
但是errors被定义成了一个接口,而golang巧妙的设计使其可以通过实现接口所包含的方法的基础上额外扩展更多的方法,于是我就研究了一下弄了这么一个东西出来,这个包主要有一下几个特点:
- 支持打印错误堆栈信息,可以方便跟踪到具体是哪一行代码出错。
- 支持字符串格式化
- 支持json返回
实现的方法很简单,利用runtime包获取运行时信息,利用json包进行错误数据json输出,利用fmt包进行格式化。具体代码如下:
1 | /* |
怎么样,是不是变得强大了很多?科科~