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
|
|
@ -103,7 +103,7 @@ class avconv(devedeng.avbase.avbase):
|
|||
return True
|
||||
else:
|
||||
return False
|
||||
except:
|
||||
except (OSError, subprocess.SubprocessError):
|
||||
return False
|
||||
|
||||
def __init__(self):
|
||||
|
|
@ -648,7 +648,7 @@ class avconv(devedeng.avbase.avbase):
|
|||
for e in parts:
|
||||
try:
|
||||
v = float(e)
|
||||
except:
|
||||
except ValueError:
|
||||
continue
|
||||
t = t * 60.0 + v
|
||||
t /= self.final_length
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue