summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Sirgo Rica <asirgo@soleta.eu>2024-04-03 10:54:51 +0200
committerAlejandro Sirgo Rica <asirgo@soleta.eu>2024-04-03 13:31:10 +0200
commitcbe7f8d49cb80e53948562c797c853b84f25c1e1 (patch)
treefe07a0c03e553d3fdb6e3a94514d88a36afa61dd
parentdfde363aa63ad3e7967da49f4ab599399b89e7f8 (diff)
src: use explicit exception types in except Exception blocks
Capture only the relevant exception types in each except block. The capture of the Exception type means hiding information for unhandled error cases, even for syntax errors in the codebase. Using a more fine grained exception filtering improves error traceability.
-rw-r--r--src/live/ogOperations.py6
-rw-r--r--src/utils/sw_inventory.py2
-rw-r--r--src/utils/uefi.py4
3 files changed, 6 insertions, 6 deletions
diff --git a/src/live/ogOperations.py b/src/live/ogOperations.py
index 0c08459..02af011 100644
--- a/src/live/ogOperations.py
+++ b/src/live/ogOperations.py
@@ -52,7 +52,7 @@ class OgLiveOperations:
try:
proc = subprocess.call(["pkill", "-9", "browser"])
proc = subprocess.Popen(["browser", "-qws", url])
- except Exception as e:
+ except OSError as e:
raise OgError('Cannot restart browser') from e
def _refresh_payload_disk(self, cxt, part_setup, num_disk):
@@ -144,7 +144,7 @@ class OgLiveOperations:
try:
r = shutil.copy(src, dst)
tip_write_csum(image_name)
- except Exception as e:
+ except (OSError, OgError) as e:
raise OgError(f'Error copying image {image_name} to cache. Reported: {e}') from e
def _restore_image_unicast(self, repo, name, devpath, cache=False):
@@ -245,7 +245,7 @@ class OgLiveOperations:
shell=True,
executable=OG_SHELL)
(output, error) = ogRest.proc.communicate()
- except Exception as e:
+ except OSError as e:
raise OgError(f'Error when running "shell run" subprocess: {e}') from e
if ogRest.proc.returncode != 0:
diff --git a/src/utils/sw_inventory.py b/src/utils/sw_inventory.py
index c7bb458..5f137f2 100644
--- a/src/utils/sw_inventory.py
+++ b/src/utils/sw_inventory.py
@@ -88,7 +88,7 @@ def _get_package_set_windows(hivepath):
h = hivex.Hivex(hivepath)
_fill_package_set_1(h, packages)
_fill_package_set_2(h, packages)
- except Exception as e:
+ except RuntimeError as e:
logging.error(f'Hivex was not able to operate over {hivepath}. Reported: {e}')
return packages
diff --git a/src/utils/uefi.py b/src/utils/uefi.py
index 17b35cb..0906ae9 100644
--- a/src/utils/uefi.py
+++ b/src/utils/uefi.py
@@ -139,12 +139,12 @@ def copy_windows_efi_bootloader(disk, partition):
if os.path.exists(destination_dir):
try:
shutil.rmtree(destination_dir)
- except Exception as e:
+ except OSError as e:
raise OgError(f'Failed to delete {destination_dir}: {e}') from e
logging.info(f'Copying {loader_dir} into {destination_dir}')
try:
shutil.copytree(loader_dir, destination_dir)
- except Exception as e:
+ except OSError as e:
raise OgError(f'Failed to copy {loader_dir} into {destination_dir}: {e}') from e
finally:
umount(mountpoint)