我正在尝试解析mySQL错误,以便从golang API向用户返回干净的错误消息。 我读了一些像this one这样的文章,它显示了我想要做的事情,但看起来我使用的模块go-mysql-driver并不支持parseError。
给出我尝试实现的具体示例,错误:
Error 1062: Duplicate entry 'John' for key 'name_UNIQUE'
我希望能够构建一个数据结构,允许我组织信息以返回用户友好的消息,如
Error with the field 'name': 'John' already exist"
所以我也可以用不同的语言翻译它并直接打印到客户端。
谢谢!
答案 0 :(得分:18)
示例:
me, ok := err.(*mysql.MySQLError)
if !ok {
return err
}
if me.Number == 1062 {
return errors.New("It already exists in a database.")
}
return err
中找到me.Number
的可能值
答案 1 :(得分:-2)
该错误直接来自服务器,您必须自己解析错误字符串(err.Error()
)。