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

我提到了这个问题 - 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返回值传递。


如何做到这一点?


尚方宝剑之说
浏览 177回答 3
3回答

梦里花落0921

我认为这会做你想要的: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}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go