在 Go 中使用 Sqlite `no such table` 错误?

问题描述 投票:0回答:1

在 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
    }
}
database sqlite go go-sqlite3
1个回答
0
投票

在 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 } }
    
© www.soinside.com 2019 - 2024. All rights reserved.