在 Go 中使用 sqlite 数据库时。在测试过程中我收到错误:
no such table: table_name
。
好吧,我知道错误来自哪里。
但我想知道是否有一种方法可以在 Go 中使用此错误消息,对其进行一些处理(例如在我的代码中创建该表)。我试图做这样的事情:
_, err := getState(dbconn) // This the function that retrieves the table that does not exists
if err != nil {
if err == err.New("no such table: table_name") {
// do the work
}
}
在 Go 中,SQLite 返回 错误,例如“没有这样的表”,无法使用 err.New("no such table: table_name") 与字符串进行比较。这是因为“没有这样的表”错误作为 sqlite3.Error 对象返回,而不是作为字符串。
要处理此错误,您应该使用 Error() 方法检查错误消息:
_, err = getState(dbconn)
if err != nil {
if err.Error() == "no such table: table_name" {
fmt.Println("Creating the table")
// do the work
}
}