Если я запускаю этот код, все работает нормально, и в конечном результате ничего не происходит неправильно (выводится правильный идентификатор).
stmt, err := db.Conn.Prepare("INSERT INTO tablename a VALUES (?)")
CheckErr(err)
defer stmt.Close()
res, err := stmt.Exec(&t.Id)
CheckErr(err)
id, err := res.LastInsertId()
fmt.Println(id)
Но когда я добавляю еще один CheckErr(err)
в конце иЯ запускаю, получаю это:
runtime error: invalid memory address or nil pointer dereference
Это первое, что происходит в трассировке стека после паники:
id, err := res.LastInsertId()
И идентификатор не печатается, что странно, так как printlnпредшествует новому CheckErr (err)
Есть идеи, почему это происходит?Я невежественен
func CheckErr(err error) {
if err != nil {
raven.CaptureErrorAndWait(err, nil)
}
}