summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/strategies.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-12-07 17:20:05 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2013-12-07 17:20:05 -0500
commit6d5eae78a7dd79ad7bd0a0951bc6c95437d0fa8e (patch)
tree7284d9941af1fe4bdaaf11b0fb7c28ff90063781 /lib/sqlalchemy/engine/strategies.py
parenta8efeb6c052330b7b8d44960132d638b08d42d18 (diff)
downloadsqlalchemy-6d5eae78a7dd79ad7bd0a0951bc6c95437d0fa8e.tar.gz
- A DBAPI that raises an error on ``connect()`` which is not a subclass
of dbapi.Error (such as ``TypeError``, ``NotImplementedError``, etc.) will propagate the exception unchanged. Previously, the error handling specific to the ``connect()`` routine would both inappropriately run the exception through the dialect's :meth:`.Dialect.is_disconnect` routine as well as wrap it in a :class:`sqlalchemy.exc.DBAPIError`. It is now propagated unchanged in the same way as occurs within the execute process. [ticket:2881] - add tests for this in test_parseconnect, but also add tests in test_execute to ensure the execute() behavior as well
Diffstat (limited to 'lib/sqlalchemy/engine/strategies.py')
-rw-r--r--lib/sqlalchemy/engine/strategies.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/strategies.py b/lib/sqlalchemy/engine/strategies.py
index ab9d370a3..5a3b2c5af 100644
--- a/lib/sqlalchemy/engine/strategies.py
+++ b/lib/sqlalchemy/engine/strategies.py
@@ -78,7 +78,7 @@ class DefaultEngineStrategy(EngineStrategy):
def connect():
try:
return dialect.connect(*cargs, **cparams)
- except Exception as e:
+ except dialect.dbapi.Error as e:
invalidated = dialect.is_disconnect(e, None, None)
util.raise_from_cause(
exc.DBAPIError.instance(None, None,