From cb9ec58dc42e71706e029b82c344cc276cc5a5ee Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Thu, 29 Apr 2021 17:53:35 -0500 Subject: [PATCH] Trap and report db errors during setup, i.e., factory creation --- src/pgwui_core/core.py | 2 ++ src/pgwui_core/exceptions.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/pgwui_core/core.py b/src/pgwui_core/core.py index 31058b4..7764e9b 100644 --- a/src/pgwui_core/core.py +++ b/src/pgwui_core/core.py @@ -1469,6 +1469,8 @@ class DBConnector(object): errors.extend(ex.errors) except core_ex.PGWUIError as ex: errors.append(ex) + except psycopg2.DatabaseError as ex: + errors.append(core_ex.DBSetupError(ex)) else: try: self.upload_data(processor, self.data, errors) diff --git a/src/pgwui_core/exceptions.py b/src/pgwui_core/exceptions.py index 3b71ed8..3fe4e46 100644 --- a/src/pgwui_core/exceptions.py +++ b/src/pgwui_core/exceptions.py @@ -54,6 +54,7 @@ class UploadError(PGWUIError): * DBError * DBCommitError * DBDataLineError + * DBSetupError * DataLineError * TooManyColsError ''' @@ -221,6 +222,11 @@ class DBDataLineError(DBError): self.data = udl.raw +class DBSetupError(DBError): + def __init__(self, pgexc): + super().__init__(pgexc, "complete the application's setup") + + class DataLineError(UploadError): ''' Module exceptions rasied while line-by-line processing the uploaded -- 2.34.1