1 回答
TA贡献1796条经验 获得超4个赞
命名您的返回参数,然后您可以在defer方法中设置它:
func getDBStoreStatus() (replyMessage string) {
defer func(){
if err := recover(); err != nil {
replyMessage = "Error happend."
}
}()
//do something to store row into DB
db, err := sql.Open("mysql", "user1:password@/databaseName?charset=utf8")
newMessage, err := db.Prepare("INSERT .............
res, err := newMessage.Exec(...........
if err != nil {
panic(err)
}
replyMessage = "OK"
return replyMessage
}
请参阅关于延迟、恐慌和恢复的 Go 博客文章:
延迟函数可以读取并分配给返回函数的命名返回值。
在此示例中,延迟函数在周围函数返回后递增返回值 i。因此,此函数返回 2:
func c() (i int) {
defer func() { i++ }()
return 1
}
不过,我真的不明白这一点。你可以这样做:
if err != nil {
return "Error happend."
}
而不是panic(err).
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报