diff options
author | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-04-03 10:54:51 +0200 |
---|---|---|
committer | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-04-03 13:31:10 +0200 |
commit | cbe7f8d49cb80e53948562c797c853b84f25c1e1 (patch) | |
tree | fe07a0c03e553d3fdb6e3a94514d88a36afa61dd /src | |
parent | dfde363aa63ad3e7967da49f4ab599399b89e7f8 (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.
Diffstat (limited to 'src')
-rw-r--r-- | src/live/ogOperations.py | 6 | ||||
-rw-r--r-- | src/utils/sw_inventory.py | 2 | ||||
-rw-r--r-- | src/utils/uefi.py | 4 |
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) |