当前位置: 首页 > 面试题库 >

比较Golang中的错误消息

戚兴邦
2023-03-14
问题内容

假设我像这样在golang中创建了一个新错误

err := errors.New("SOME_COMMON_ERROR_CODE")

在Java中,我习惯于获取GetMessage()消息的异常。如果返回,我将如何比较该错误?

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()方法返回的字符串进行比较。它会使您的代码变得脆弱。



 类似资料:
  • Java在进行比较时抛出的错误是: 然后比较的方法(比较器 你知道发生了什么事吗?

  • 问题内容: 我正在尝试使用Java8按名称对员工进行排序,然后按年龄进行排序,我在下面创建了该代码,但它给了我一个编译器错误 但是如果我明确指定类型,它就可以工作 或通过创建两个s和链 我已经在左侧指定了类型,但是为什么自动类型推断没有找到正确的类型并期望明确指定。 有人可以澄清吗? 这是代码 输出 问题答案: Java需要知道所有变量的类型。在许多lambda中,它可以推断类型,但是在您的第一个

  • 问题内容: 我有一个错误值,当在控制台上打印时会给我 如何将其与特定的错误值进行比较?我试过了,但是没有用: 问题答案: 尝试 或通过实现错误接口来创建自己的错误。

  • 我正在尝试使用Java8按姓名和年龄对员工列表进行排序,我在下面创建了,但它给我一个编译器错误

  • 我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和

  • 问题内容: 当我比较具有相同下划线字符串的两个StringBuilder对象时,即使value应该为true也会返回。 问题答案: 这是因为不会覆盖类中的方法。 您将必须将两个对象都转换为,然后进行比较 这将为您提供正确的结果。显然,您必须注意 null 检查等。 根据合同,如果覆盖equals,则也必须覆盖它们,但是由于可变,因此其值的任何更改都会影响对象的哈希码。如果用作键,可能会导致存储的值