diff --git a/lib/datasource.js b/lib/datasource.js index 2fa215e1..70484a6e 100644 --- a/lib/datasource.js +++ b/lib/datasource.js @@ -327,13 +327,22 @@ DataSource.prototype.setup = function (name, settings) { }.bind(this); - if ('function' === typeof connector.initialize) { - // Call the async initialize method - connector.initialize(this, postInit); - } else if ('function' === typeof connector) { - // Use the connector constructor directly - this.connector = new connector(this.settings); - postInit(); + try { + if ('function' === typeof connector.initialize) { + // Call the async initialize method + connector.initialize(this, postInit); + } else if ('function' === typeof connector) { + // Use the connector constructor directly + this.connector = new connector(this.settings); + postInit(); + } + } catch(err) { + if (err.message) { + err.message = 'Cannot initialize connector ' + + JSON.stringify(connector.name || name) + ': ' + + err.message; + } + throw err; } }