比较 golang 中的错误信息 [英] Compare error message in golang
问题描述
假设我像这样在 golang 中创建了一个新错误
Let's say I create a new error in golang like so
err := errors.New("SOME_COMMON_ERROR_CODE")
在 java 中,我习惯于使用 GetMessage()
消息获取异常.如果返回,我将如何比较该错误?
In java, I'm used to being able to get Exception with GetMessage()
messages. How would I compare that error if returned?
if some_err := some_package.DoSomething(); some_err != nil {
if some_err.GetMessage() == "SOME_COMMON_ERROR_CODE" {
// handle it however.
}
}
golang 是怎么做的?
How is this done in golang?
推荐答案
声明一个包级变量有错误:
Declare a package level variable with the error:
var errExample = errors.New("this is an example")
返回错误时使用此值.与此值进行比较以检查特定错误:
Use this value when returning errors. Compare against this value to check for the specific error:
if err == errExample {
// handle it
}
如果包外的代码需要访问错误,则导出变量:
Export the variable if code outside the package needs to access the error:
var ErrExample = errors.New("this is an example")
像这样使用它:
if err == somepackage.ErrExample {
// handle it
}
避免与从错误的 Error() 方法返回的字符串进行比较.它会使您的代码变得脆弱.
Avoid comparing against the string returned from the error's Error() method. It can make your code brittle.
这篇关于比较 golang 中的错误信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!