比较 Go 中的错误消息
在 Java 中,您可以使用 GetMessage() 从异常中检索错误消息。然而,在 Go 中,没有为错误类型定义等效的方法。相反,必须采用自定义错误处理技术。
自定义错误处理
一种方法是定义一个包级变量来表示您想要的特定错误消息检查一下。例如:
var errExample = errors.New("this is an example")
返回错误时,可以使用此变量代替通用错误字符串:
if err := some_package.DoSomething(); err != nil { if err == errExample { // handle it however. } }
导出错误变量
如果包外的代码需要访问错误,可以使用大写导出变量letter:
var ErrExample = errors.New("this is an example")
这允许您将错误与导出的变量进行比较:
if err == somepackage.ErrExample { // handle it }
示例
陷阱:避免使用字符串比较
抵制与错误的 Error() 方法返回的字符串进行比较的诱惑。这可能会导致代码变得脆弱。例如:
if err.Error() == "this is an example" { // this is not recommended }
相反,请使用上面概述的自定义错误处理方法。
以上是与 Java 的 GetMessage() 不同,我如何有效地比较和处理 Go 中的错误?的详细内容。更多信息请关注PHP中文网其他相关文章!