假设我在golang中创建了一个新错误
err := errors.New("SOME_COMMON_ERROR_CODE")
在java中,我习惯于能够通过GetMessage()
消息获得Exception .如果返回,我该如何比较该错误?
if some_err := some_package.DoSomething(); some_err != nil { if some_err.GetMessage() == "SOME_COMMON_ERROR_CODE" { // handle it however. } }
这是怎么在golang完成的?
使用错误声明包级别变量:
var errExample = errors.New("this is an example")
返回错误时使用此值.与此值进行比较以检查特定错误:
if err == errExample { // handle it }
如果包外的代码需要访问错误,则导出变量:
var ErrExample = errors.New("this is an example")
像这样使用它:
if err == somepackage.ErrExample { // handle it }
这是一些例子.
避免与错误的Error()方法返回的字符串进行比较.它可以使你的代码变脆.