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
|
|
@ -106,7 +106,7 @@ class ffmpeg(devedeng.executor.executor):
|
|||
return True
|
||||
else:
|
||||
return False
|
||||
except:
|
||||
except (OSError, subprocess.SubprocessError):
|
||||
return False
|
||||
|
||||
def __init__(self):
|
||||
|
|
@ -124,7 +124,7 @@ class ffmpeg(devedeng.executor.executor):
|
|||
if line.startswith("ffmpeg version "):
|
||||
version_number = int(re.search(r"[0-9]+", line).group())
|
||||
break
|
||||
except:
|
||||
except (OSError, subprocess.SubprocessError, ValueError, AttributeError):
|
||||
version_number = 7
|
||||
pass
|
||||
print(f"Detected ffmpeg version number: {version_number}")
|
||||
|
|
@ -829,7 +829,7 @@ class ffmpeg(devedeng.executor.executor):
|
|||
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