]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
cleanup exception handling - use new exception hierarchy (since python 2.5)
authorndparker <ndparker@users.noreply.github.com>
Thu, 2 Oct 2014 20:00:31 +0000 (22:00 +0200)
committerndparker <ndparker@users.noreply.github.com>
Thu, 2 Oct 2014 20:00:31 +0000 (22:00 +0200)
lib/sqlalchemy/dialects/mssql/base.py
lib/sqlalchemy/dialects/mysql/base.py
lib/sqlalchemy/dialects/mysql/mysqlconnector.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/exc.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/pool.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/testing/engines.py
lib/sqlalchemy/testing/provision.py
lib/sqlalchemy/util/langhelpers.py

index ade2d00cbc4a44467bfcfe93579c13473b680f5d..dad02ee0fdbd18b3e6729da09b3d2f526ddf9cb9 100644 (file)
@@ -846,9 +846,7 @@ class MSExecutionContext(default.DefaultExecutionContext):
                         "SET IDENTITY_INSERT %s OFF" %
                         self.dialect.identifier_preparer. format_table(
                             self.compiled.statement.table)))
-            except (SystemExit, KeyboardInterrupt):
-                raise
-            except:
+            except Exception:
                 pass
 
     def get_result_proxy(self):
index 0994e24160c56a12cd6b3f9326220a4c10685d90..2776440228c02eaa2750cc9089b2b69b013bbd55 100644 (file)
@@ -2317,9 +2317,7 @@ class MySQLDialect(default.DefaultDialect):
         # basic operations via autocommit fail.
         try:
             dbapi_connection.commit()
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             if self.server_version_info < (3, 23, 15):
                 args = sys.exc_info()[1].args
                 if args and args[0] == 1064:
@@ -2331,9 +2329,7 @@ class MySQLDialect(default.DefaultDialect):
 
         try:
             dbapi_connection.rollback()
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             if self.server_version_info < (3, 23, 15):
                 args = sys.exc_info()[1].args
                 if args and args[0] == 1064:
index afa61d85b1adb386e232ef8cb40e7b191954db0b..6077ce53e4e622aa2c6d78cd91b2dd047b9e734c 100644 (file)
@@ -103,9 +103,7 @@ class MySQLDialect_mysqlconnector(MySQLDialect):
                     'client_flags', ClientFlag.get_default())
                 client_flags |= ClientFlag.FOUND_ROWS
                 opts['client_flags'] = client_flags
-            except (SystemExit, KeyboardInterrupt):
-                raise
-            except:
+            except Exception:
                 pass
         return [[], opts]
 
index b3460c240b40e3f9282caeb1111e6eb79003a6bf..220679c129be99d3d8b5d7bd87ebb8bd878c2ff5 100644 (file)
@@ -1055,8 +1055,6 @@ class Connection(Connectable):
         """
         try:
             cursor.close()
-        except (SystemExit, KeyboardInterrupt):
-            raise
         except Exception:
             # log the error through the connection pool's logger.
             self.engine.pool.logger.error(
@@ -1135,8 +1133,6 @@ class Connection(Connectable):
                         per_fn = fn(ctx)
                         if per_fn is not None:
                             ctx.chained_exception = newraise = per_fn
-                    except (SystemExit, KeyboardInterrupt):
-                        raise
                     except Exception as _raised:
                         # handler raises an exception - stop processing
                         newraise = _raised
index a82bae33fdf06972ad71a2696b038c4f09bb8632..5d35dc2e7a6c51e0288374d657753503252d0941 100644 (file)
@@ -280,7 +280,9 @@ class DBAPIError(StatementError):
                  connection_invalidated=False):
         # Don't ever wrap these, just return them directly as if
         # DBAPIError didn't exist.
-        if isinstance(orig, (KeyboardInterrupt, SystemExit, DontWrapMixin)):
+        if (isinstance(orig, BaseException) and
+                not isinstance(orig, Exception)) or \
+                isinstance(orig, DontWrapMixin):
             return orig
 
         if orig is not None:
@@ -310,8 +312,6 @@ class DBAPIError(StatementError):
     def __init__(self, statement, params, orig, connection_invalidated=False):
         try:
             text = str(orig)
-        except (KeyboardInterrupt, SystemExit):
-            raise
         except Exception as e:
             text = 'Error in str() of DB-API-generated exception: ' + str(e)
         StatementError.__init__(
index bd28975ddc224964b396ce603ebdbce4e941d22a..e4c0de188f2e867d51c795197cc31c4f7b6e6667 100644 (file)
@@ -2649,9 +2649,7 @@ def configure_mappers():
                         mapper._expire_memoizations()
                         mapper.dispatch.mapper_configured(
                             mapper, mapper.class_)
-                    except (SystemExit, KeyboardInterrupt):
-                        raise
-                    except:
+                    except Exception:
                         exc = sys.exc_info()[1]
                         if not hasattr(exc, '_configure_failed'):
                             mapper._configure_failed = exc
index 0c162e98491fde7a7a643f42fc8edc019d480cd1..a174df784545c2e6de697177cb45a64c9cc1ad5d 100644 (file)
@@ -248,9 +248,7 @@ class Pool(log.Identified):
         self.logger.debug("Closing connection %r", connection)
         try:
             self._dialect.do_close(connection)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             self.logger.error("Exception closing connection %r",
                               connection, exc_info=True)
 
@@ -569,12 +567,12 @@ def _finalize_fairy(connection, connection_record,
             # Immediately close detached instances
             if not connection_record:
                 pool._close_connection(connection)
-        except Exception as e:
+        except BaseException as e:
             pool.logger.error(
                 "Exception during reset or similar", exc_info=True)
             if connection_record:
                 connection_record.invalidate(e=e)
-            if isinstance(e, (SystemExit, KeyboardInterrupt)):
+            if not isinstance(e, Exception):
                 raise
 
     if connection_record:
@@ -842,9 +840,7 @@ class SingletonThreadPool(Pool):
         for conn in self._all_conns:
             try:
                 conn.close()
-            except (SystemExit, KeyboardInterrupt):
-                raise
-            except:
+            except Exception:
                 # pysqlite won't even let you close a conn from a thread
                 # that didn't create it
                 pass
index 8e18a22fe13be365d4adc2d4603487e2034cd4d3..4bc1683ddf9e56094b98c442ef68d4416b758310 100644 (file)
@@ -3491,9 +3491,7 @@ def _string_or_unprintable(element):
     else:
         try:
             return str(element)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             return "unprintable element %r" % element
 
 
index 67c13231e9ca4709bd9ca1aa33f6a3b1a0327b9f..1284f9c2a5b98916c692b21cee53392719eb6ee2 100644 (file)
@@ -37,8 +37,6 @@ class ConnectionKiller(object):
     def _safe(self, fn):
         try:
             fn()
-        except (SystemExit, KeyboardInterrupt):
-            raise
         except Exception as e:
             warnings.warn(
                 "testing_reaper couldn't "
@@ -168,8 +166,6 @@ class ReconnectFixture(object):
     def _safe(self, fn):
         try:
             fn()
-        except (SystemExit, KeyboardInterrupt):
-            raise
         except Exception as e:
             warnings.warn(
                 "ReconnectFixture couldn't "
index 64688d6b5189c20d9f56ef206d8a4b666bf24d4f..c8f7fdf304331503dc6ffd7873ca38732ac7ffb3 100644 (file)
@@ -120,9 +120,7 @@ def _pg_create_db(cfg, eng, ident):
             isolation_level="AUTOCOMMIT") as conn:
         try:
             _pg_drop_db(cfg, conn, ident)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             pass
         currentdb = conn.scalar("select current_database()")
         conn.execute("CREATE DATABASE %s TEMPLATE %s" % (ident, currentdb))
@@ -133,9 +131,7 @@ def _mysql_create_db(cfg, eng, ident):
     with eng.connect() as conn:
         try:
             _mysql_drop_db(cfg, conn, ident)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             pass
         conn.execute("CREATE DATABASE %s" % ident)
         conn.execute("CREATE DATABASE %s_test_schema" % ident)
@@ -177,21 +173,15 @@ def _mysql_drop_db(cfg, eng, ident):
     with eng.connect() as conn:
         try:
             conn.execute("DROP DATABASE %s_test_schema" % ident)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             pass
         try:
             conn.execute("DROP DATABASE %s_test_schema_2" % ident)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             pass
         try:
             conn.execute("DROP DATABASE %s" % ident)
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             pass
 
 
index 75c6e7b468bd3cb2c1a151a4a56c8a649a10f7fa..ea8f30e9de1dbb5541ee21430fcbc0d1f3401c84 100644 (file)
@@ -490,9 +490,7 @@ def generic_repr(obj, additional_kw=(), to_inspect=None, omit_kwarg=()):
             val = getattr(obj, arg, missing)
             if val is not missing and val != defval:
                 output.append('%s=%r' % (arg, val))
-        except (SystemExit, KeyboardInterrupt):
-            raise
-        except:
+        except Exception:
             pass
 
     if additional_kw:
@@ -501,9 +499,7 @@ def generic_repr(obj, additional_kw=(), to_inspect=None, omit_kwarg=()):
                 val = getattr(obj, arg, missing)
                 if val is not missing and val != defval:
                     output.append('%s=%r' % (arg, val))
-            except (SystemExit, KeyboardInterrupt):
-                raise
-            except:
+            except Exception:
                 pass
 
     return "%s(%s)" % (obj.__class__.__name__, ", ".join(output))
@@ -1189,9 +1185,7 @@ def warn_exception(func, *args, **kwargs):
     """
     try:
         return func(*args, **kwargs)
-    except (SystemExit, KeyboardInterrupt):
-        raise
-    except:
+    except Exception:
         warn("%s('%s') ignored" % sys.exc_info()[0:2])