2 次代碼提交 adb723534f ... 7f905ba10a

作者 SHA1 備註 提交日期
  a7exd 7f905ba10a add handler if file to save wasn't selected, PermissionError to except 2 年之前
  a7exd ac6327d7a7 add connection_timeout for connect 2 年之前
共有 2 個文件被更改,包括 11 次插入6 次删除
  1. 10 5
      gui.py
  2. 1 1
      quakes_from_db.py

+ 10 - 5
gui.py

@@ -59,8 +59,11 @@ class Window(QMainWindow, Ui_MainWindow):
         """Save function depending on ext of file."""
         self.progressBar.setValue(10)
         dialog = QFileDialog(self)
-        file = dialog.getSaveFileName(dir='untitled.txt',
-                                      filter=self.file_filter)[0]
+        if not (file := dialog.getSaveFileName(dir='untitled.txt',
+                                               filter=self.file_filter)[0]):
+            return self._show_error_dialog('File is not selected! '
+                                           'Select a file and try again, '
+                                           'please.')
         file = Path(file)
         log.info(f'file to save the quakes: {file}')
         ext = file.suffix
@@ -72,11 +75,13 @@ class Window(QMainWindow, Ui_MainWindow):
                                          'completed successfully.')
             log.info(f'Writing into the file completed successfully.')
             self.progressBar.setValue(100)
-        except (NoSelectedQuakesError, FormatToStrError) as exc:
+        except (NoSelectedQuakesError, FormatToStrError,
+                PermissionError) as exc:
             self.statusBar().showMessage('Error: cannot save the data!')
             log.exception(exc)
-            self._show_error_dialog(message=f'Cannot save the data.\n'
-                                            f'\n{exc.args[0]}')
+            self._show_error_dialog(message=f'Cannot save the data '
+                                            f'into the file "{file}"!\n'
+                                            f'\n{exc.args}')
 
     def _show_error_dialog(self, message) -> None:
         title = 'Something went wrong'

+ 1 - 1
quakes_from_db.py

@@ -11,7 +11,7 @@ def connect_decorator(func):
     
     def wrapper(args):
         try:
-            with connect(**config.DB) as conn:
+            with connect(**config.DB, connection_timeout=2) as conn:
                 return func(*args, conn=conn)
         except Error as exc:
             raise ConnectDatabaseError(exc.msg)