From ff92f4808548636e1232a8e8c625c816584fa6b0 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Sun, 29 Sep 2024 17:14:09 -0500 Subject: [PATCH] Trap and report errors from the csv module --- src/pgwui_sql/exceptions.py | 12 ++++++++++++ src/pgwui_sql/views/sql.py | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) 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. -- 2.34.1