From d0eb71517cdc401f29e28620228d187399bc0bfc Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Tue, 27 Oct 2020 08:23:12 +0100 Subject: [PATCH] FEM: python, get rid of bare excepts --- src/Mod/Fem/coding_conventions.md | 7 +++++++ src/Mod/Fem/feminout/importCcxDatResults.py | 2 +- src/Mod/Fem/feminout/importInpMesh.py | 2 +- src/Mod/Fem/femmesh/gmshtools.py | 2 +- src/Mod/Fem/femsolver/task.py | 2 +- src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py | 2 +- src/Mod/Fem/femtaskpanels/task_result_mechanical.py | 2 +- src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py | 2 +- src/Mod/Fem/femtools/ccxtools.py | 2 +- src/Mod/Fem/femtools/femutils.py | 2 +- 10 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/Mod/Fem/coding_conventions.md b/src/Mod/Fem/coding_conventions.md index a6417630cd..4753f28c48 100644 --- a/src/Mod/Fem/coding_conventions.md +++ b/src/Mod/Fem/coding_conventions.md @@ -34,6 +34,13 @@ These coding rules apply to FEM module code only. Other modules or the base syst - maximal line length is 100 - double quotes as string identifier +### Exceptione +- Do not use bare 'except'. +- Be more specific. If not possible use: +- Either use 'except Exception' or if really everything should be catched 'except BaseException' +- https://stackoverflow.com/a/18982772 +- https://github.com/PyCQA/pycodestyle/issues/703 + ### Imports - Only one import per line. - Even on import from some_module import something. There should only be one something per line. diff --git a/src/Mod/Fem/feminout/importCcxDatResults.py b/src/Mod/Fem/feminout/importCcxDatResults.py index cde7672052..7443879e22 100644 --- a/src/Mod/Fem/feminout/importCcxDatResults.py +++ b/src/Mod/Fem/feminout/importCcxDatResults.py @@ -101,7 +101,7 @@ def readResult( m["frequency"] = mode_frequency results.append(m) mode_reading = True - except: + except Exception: if mode_reading: # Conversion error after mode reading started, so it's the end of section eigenvalue_output_section_found = False diff --git a/src/Mod/Fem/feminout/importInpMesh.py b/src/Mod/Fem/feminout/importInpMesh.py index 858ff6de19..31d0cb3f39 100644 --- a/src/Mod/Fem/feminout/importInpMesh.py +++ b/src/Mod/Fem/feminout/importInpMesh.py @@ -214,7 +214,7 @@ def read_inp(file_name): try: enode = int(line_list[en]) elm_category[number].append(enode) - except: + except Exception: elm_2nd_line = True break diff --git a/src/Mod/Fem/femmesh/gmshtools.py b/src/Mod/Fem/femmesh/gmshtools.py index 925585cc2a..cf193baedf 100644 --- a/src/Mod/Fem/femmesh/gmshtools.py +++ b/src/Mod/Fem/femmesh/gmshtools.py @@ -831,7 +831,7 @@ class GmshTools(): # but the warnings are in stderr and thus printed :-) # print(output) # print(error) - except: + except Exception: error = "Error executing: {}\n".format(" ".join(comandlist)) Console.PrintError(error) self.error = True diff --git a/src/Mod/Fem/femsolver/task.py b/src/Mod/Fem/femsolver/task.py index 5bb8a6299f..9b0f11e139 100644 --- a/src/Mod/Fem/femsolver/task.py +++ b/src/Mod/Fem/femsolver/task.py @@ -116,7 +116,7 @@ class Task(object): def protector(self): try: self.run() - except: + except Exception: self.fail() raise diff --git a/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py b/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py index ef332fbb5e..cb5fb8bc2a 100644 --- a/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py +++ b/src/Mod/Fem/femtaskpanels/task_mesh_gmsh.py @@ -201,7 +201,7 @@ class _TaskPanel: error = "" try: error = gmsh_mesh.create_mesh() - except: + except Exception: import sys FreeCAD.Console.PrintMessage( "Unexpected error when creating mesh: {}\n" diff --git a/src/Mod/Fem/femtaskpanels/task_result_mechanical.py b/src/Mod/Fem/femtaskpanels/task_result_mechanical.py index 1809c66c77..0ec984c58b 100644 --- a/src/Mod/Fem/femtaskpanels/task_result_mechanical.py +++ b/src/Mod/Fem/femtaskpanels/task_result_mechanical.py @@ -235,7 +235,7 @@ class _TaskPanel: # self.result_widget.hsb_displacement_factor.setValue(df) self.result_widget.sb_displacement_factor_max.setValue(dfm) self.result_widget.sb_displacement_factor.setValue(df) - except: + except Exception: self.restore_initial_result_dialog() def restore_initial_result_dialog(self): diff --git a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py index 97e8e5f66a..8d94e21f17 100644 --- a/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py +++ b/src/Mod/Fem/femtaskpanels/task_solver_ccxtools.py @@ -285,7 +285,7 @@ class _TaskPanel: QApplication.setOverrideCursor(Qt.WaitCursor) try: self.fea.load_results() - except: + except Exception: FreeCAD.Console.PrintError("loading results failed\n") QApplication.restoreOverrideCursor() diff --git a/src/Mod/Fem/femtools/ccxtools.py b/src/Mod/Fem/femtools/ccxtools.py index 7f6cebc17d..cf83c22582 100644 --- a/src/Mod/Fem/femtools/ccxtools.py +++ b/src/Mod/Fem/femtools/ccxtools.py @@ -377,7 +377,7 @@ class FemToolsCcx(QtCore.QRunnable, QtCore.QObject): self.working_dir ) self.inp_file_name = inp_writer.write_calculix_input_file() - except: + except Exception: FreeCAD.Console.PrintError( "Unexpected error when writing CalculiX input file: {}\n" .format(sys.exc_info()[0]) diff --git a/src/Mod/Fem/femtools/femutils.py b/src/Mod/Fem/femtools/femutils.py index 939dad2a1f..5d19dcec28 100644 --- a/src/Mod/Fem/femtools/femutils.py +++ b/src/Mod/Fem/femtools/femutils.py @@ -249,7 +249,7 @@ def getBoundBoxOfAllDocumentShapes(doc): if hasattr(o, "Shape") and hasattr(o.Shape, "BoundBox"): try: bb = o.Shape.BoundBox - except: + except Exception: bb = None if bb.isValid(): if not overalboundbox: