From: Karl O. Pinc Date: Sun, 29 Sep 2024 22:14:09 +0000 (-0500) Subject: Trap and report errors from the csv module X-Git-Url: https://papio.biology.duke.edu/gitweb/?a=commitdiff_plain;h=ff92f4808548636e1232a8e8c625c816584fa6b0;p=pgwui_sql Trap and report errors from the csv module --- diff --git a/src/pgwui_sql/exceptions.py b/src/pgwui_sql/exceptions.py index 99c558b..3a8d532 100644 --- a/src/pgwui_sql/exceptions.py +++ b/src/pgwui_sql/exceptions.py @@ -70,3 +70,15 @@ class NoStatementsError(SQLError): ''' def __init__(self, descr='', detail=''): super().__init__('Notice', '', descr=descr, detail=detail) + + +class CSVError(SQLError): + ''' + Error raised when the csv module raises an error + + descr More description of the error + detail Extra HTML describing the error + ''' + def __init__(self, descr='', detail=''): + super().__init__('Error while formatting the download', + '', descr=descr, detail=detail) diff --git a/src/pgwui_sql/views/sql.py b/src/pgwui_sql/views/sql.py index cdc2fe2..9c1d077 100644 --- a/src/pgwui_sql/views/sql.py +++ b/src/pgwui_sql/views/sql.py @@ -325,7 +325,10 @@ class SQLResultsHandler(pgwui_core.core.SessionDBHandler): sql_results.append(sql_result) nextset = cur.nextset() - self.make_download(sql_results) + try: + self.make_download(sql_results) + except csv.Error as ex: + raise sql_ex.CSVError(descr=f'The csv module reports: {ex}') def factory(self, ue): '''Make a db loader function from an UploadEngine.