From 8aad09d9d4b29df4cee1488859ddd59e53144349 Mon Sep 17 00:00:00 2001 From: bradyjoestar Date: Thu, 20 Sep 2018 13:53:25 +0800 Subject: [PATCH] Output error instead of panic when the given db_backend is not initialised (#2411) Closes #2371 --- libs/db/db.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/libs/db/db.go b/libs/db/db.go index 869937660..789bbfbff 100644 --- a/libs/db/db.go +++ b/libs/db/db.go @@ -1,6 +1,9 @@ package db -import "fmt" +import ( + "fmt" + "strings" +) //---------------------------------------- // Main entry @@ -28,7 +31,18 @@ func registerDBCreator(backend DBBackendType, creator dbCreator, force bool) { } func NewDB(name string, backend DBBackendType, dir string) DB { - db, err := backends[backend](name, dir) + dbCreator, ok := backends[backend] + + if !ok { + var keys []string + for k, _ := range backends { + keys = append(keys, string(k)) + } + panic(fmt.Sprintf("Unknown db_backend %s, expected either %s", backend, strings.Join(keys, " or "))) + } + + db, err := dbCreator(name, dir) + if err != nil { panic(fmt.Sprintf("Error initializing DB: %v", err)) }