错误(error)表示程序出现了不正常的状况
在golang中,错误处理的机制非常简洁,它内置了一个error接口,所有实现了其Error方法的类型,都可以用于表示错误
也正因为它错误处理机制过于简洁(错误信息只有一段字符串),深受大家诟病
其实我个人觉得,只要采取正确的姿势,golang的错误处理也能够很优雅
bad是坏姿势,good是正确姿势
1)没有错误时不要返回error:
2)只有一种错误时,不要返回error,而是bool:
3) error或bool应该置于函数最后一个返回值处:
4) 把可能出现的有限多个错误,定义成全局变量:
在代码里就可以像这样判断各种错误而执行不同的操作:
5) 在结构体的字段中获取更多关于错误的信息:
将错误接口类型转为具体的错误类型后就可以获取字段了:
6) 在结构体的方法中获取更多关于错误的信息:
将错误接口类型转为具体的错误类型后就可以调用方法了:
貌似也没有多优雅吧,嵌套了一堆IF/ELSE (=。=||)