-2

吨

我正在尝试将 Go 中的错误转换为 go-sqlite3.Error,但它总是失败。上图代表我的调试窗口的快照,显示错误是 go-sqlite3.Error 类型

我正在使用下面的代码来输入强制转换。

import (
    "github.com/mattn/go-sqlite3"
)

if err != nil {
    if sqlite3Err, ok := err.(*sqlite3.Error); ok {
        if sqlite3Err.Code == sqlite3.ErrConstraint && sqlite3Err.ExtendedCode == 1555 {
            // SQLITE3 ERROR 1555 : PRIMARY KEY CONSTRAINT ERROR
            return errors.New("Log Error")
        }
    }
4

1 回答 1

1

试试下面的例子。err.(*sqlite3.Error)改为err.(sqlite3.Error)

if sqlite3Err, ok := err.(sqlite3.Error); ok {
    if sqlite3Err.Code == sqlite3.ErrConstraint &&
        sqlite3Err.ExtendedCode == 1555 {
        // logic 
    }
}
于 2019-08-26T08:13:16.677 回答