From 7da81a8908a84590e2877dbf8120ca1b62078e13 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 30 Dec 2015 16:14:49 +0800 Subject: [PATCH] improved error check --- db.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/db.go b/db.go index 3b1d70dd..a7947b05 100644 --- a/db.go +++ b/db.go @@ -43,7 +43,10 @@ type DB struct { func Open(driverName, dataSourceName string) (*DB, error) { db, err := sql.Open(driverName, dataSourceName) - return &DB{db, NewCacheMapper(&SnakeMapper{})}, err + if err != nil { + return nil, err + } + return &DB{db, NewCacheMapper(&SnakeMapper{})}, nil } func FromDB(db *sql.DB) *DB { @@ -52,7 +55,13 @@ func FromDB(db *sql.DB) *DB { func (db *DB) Query(query string, args ...interface{}) (*Rows, error) { rows, err := db.DB.Query(query, args...) - return &Rows{rows, db.Mapper}, err + if err != nil { + if rows != nil { + rows.Close() + } + return nil, err + } + return &Rows{rows, db.Mapper}, nil } func (db *DB) QueryMap(query string, mp interface{}) (*Rows, error) {