比较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屋!