面试题答案
一键面试- 处理错误的一般流程:
- 捕获连接数据库时返回的错误。
- 记录错误信息,方便后续排查问题,例如使用日志库记录错误。
- 根据具体业务需求,决定是进行重试连接操作(如果是暂时的网络等问题导致连接失败),还是直接向调用方返回合适的错误信息。
- 代码示例:
package main
import (
"database/sql"
"fmt"
_ "github.com/go - sql - driver/mysql"
"log"
)
func main() {
// 尝试连接数据库
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/test")
if err!= nil {
// 记录错误信息
log.Printf("连接数据库失败: %v", err)
// 这里简单处理,直接退出程序,实际应用中可根据业务需求决定处理方式
return
}
defer db.Close()
// 测试数据库连接
err = db.Ping()
if err!= nil {
log.Printf("数据库Ping失败: %v", err)
return
}
fmt.Println("成功连接到数据库")
}
上述代码首先尝试使用sql.Open
连接MySQL数据库,如果连接失败记录错误并返回。连接成功后,使用db.Ping
测试连接,如果Ping失败同样记录错误并返回。成功连接时打印成功信息。注意要导入github.com/go - sql - driver/mysql
驱动包(实际使用需确保该包已正确安装)。