Narrow bare except blocks so real errors aren't swallowed (roadmap A4)
Replaced all 46 bare 'except:' across the package with specific exception
types, and logged the cases that indicate a real problem:
- config load/save: FileNotFoundError is the silent first-run case; other
OSError/ValueError/UnicodeDecodeError are logged.
- ffprobe/avprobe: JSON parse failures are now logged (previously a media
file that ffprobe couldn't read just silently failed to import); decode
fallbacks -> UnicodeDecodeError; duration parse -> ValueError/TypeError/
KeyError; install check -> OSError/SubprocessError.
- executor: pre_/post_function and progress-polling hooks now use hasattr
checks, and a real exception inside a defined hook is logged instead of
swallowed; decode fallbacks and numeric parses narrowed.
- best-effort filesystem ops (makedirs/unlink) -> OSError.
- all backend check_is_installed probes -> OSError/SubprocessError.
- shutdown: also fixes a latent NameError ('failure' was only set in the
except branch, so a successful logind PowerOff would crash the handler).
No bare 'except:' remain. Full suite (51 tests) green; GUI starts clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
63f10f3aa0
commit
6b624a72cd
21 changed files with 70 additions and 62 deletions
|
|
@ -22,11 +22,12 @@ class shutdown:
|
|||
def __init__(self):
|
||||
|
||||
# First, try with logind
|
||||
failure = False
|
||||
try:
|
||||
bus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None)
|
||||
bus.call_sync("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager",
|
||||
"PowerOff", GLib.Variant_boolean('(bb)', (False, False)), None, Gio.DBusCallFlags.NONE, -1, None)
|
||||
except:
|
||||
except Exception:
|
||||
failure = True
|
||||
|
||||
if (failure):
|
||||
|
|
@ -37,7 +38,7 @@ class shutdown:
|
|||
bus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None)
|
||||
bus.call_sync("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager",
|
||||
"Stop", None, None, Gio.DBusCallFlags.NONE, -1, None)
|
||||
except:
|
||||
except Exception:
|
||||
failure = True
|
||||
|
||||
if (failure):
|
||||
|
|
@ -48,5 +49,5 @@ class shutdown:
|
|||
bus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None)
|
||||
bus.call_sync("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer", "org.freedesktop.Hal.Device.SystemPowerManagement",
|
||||
"Shutdown", None, None, Gio.DBusCallFlags.NONE, -1, None)
|
||||
except:
|
||||
except Exception:
|
||||
failure = True
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue