为了账号安全,请及时绑定邮箱和手机立即绑定

如何在golang的字符串中获取错误消息?

如何在golang的字符串中获取错误消息?

Go
尚方宝剑之说 2021-07-27 09:01:32
我提到了这个问题 - os.Error - string value (Golang),但这在我的情况下不起作用。func (t Trans) TicketQty() (intQty int, err string) {  defer func() {        str := recover()    if(str != nil){           err = "an error"    }  }()     Qty := t.TransObject["qty"].(map[string] interface{})["ticket fv"].(float64)    intQty = 10  return }因为err我需要抛出的错误消息,例如,如果解析逻辑失败,它会自动抛出错误。这就是我需要抓住的错误。我只是举例说明这一点 - 无论运行时异常是什么,我都需要捕获它并作为err返回值传递。如何做到这一点?
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

我认为这会做你想要的:


func (t Trans) TicketQty() (intQty int, err error) {

  defer func() {    

    ex := recover()

    if(ex != nil){     

      // "%v" prints the value of ex

      // for strings, it is the string, for errors .Error() method, for Stringer the .String() etc

      // Errorf returns an error instead of a string

      err = fmt.Errorf("%v", ex)

    }

  }()   

  ... // do your thing

  return

}


查看完整回答
反对 回复 2021-08-02
  • 3 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信