我想將MySQL錯(cuò)誤從DAO函數(shù)返回給調(diào)用方。但是錯(cuò)誤會(huì)創(chuàng)建一個(gè)并停止程序。因此,不會(huì)向調(diào)用方返回任何內(nèi)容。DAQ 函數(shù) 如下Querypanicvar sqlquery="SELECT idfrom table where id=?"func (mdao DbConn) Daoprocess(tz *entities.Workflowentity) ([]entities.WorkflowResponseEntity, error) { log.Println("In side dao") values := []entities.WorkflowResponseEntity{} rows, err := mdao.DB.Query(sqlquery, tz.Id) defer rows.Close() if err != nil { //code halts here. Nothing returns after here return values, err } for rows.Next() { value := entities.WorkflowResponseEntity{} err:=rows.Scan(&value.Id) if err != nil { log.Print("Daoprocess Scan Error", err) return values, err } values = append(values, value) } return values, nil}我的調(diào)用函數(shù)是這樣的values, err1 := dataAccess.Daoprocess(tz)log.Print("\n\n INSIDE MODEL")log.Print(err1)if err1 != nil { return t, false, err1, "Something Went Wrong"}我想處理錯(cuò)誤并將其返回給調(diào)用方。但它造成了恐慌。如何將其傳遞給調(diào)用方函數(shù)?
1 回答
慕慕森
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
在 nil 錯(cuò)誤檢查之后移動(dòng)延遲關(guān)閉函數(shù),例如:
if err != nil {
//code halts here. Nothing returns after here
return values, err
}
defer rows.Close()
- 1 回答
- 0 關(guān)注
- 154 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
