Skip to main content

71. Error Handling

1. Introduction

Robust programs handle errors gracefully.
Our File Manager should never crash due to missing files or permission issues.


2. Handling Missing Files

def safe_delete(path):
try:
os.remove(path)
print("Deleted", path)
except FileNotFoundError:
print("Error: File not found")
except PermissionError:
print("Error: Permission denied")

3. Wrapping File Operations

All file/directory operations should be wrapped in try/except.

def safe_read(path):
try:
with open(path) as f:
print(f.read())
except FileNotFoundError:
print("File not found")
except UnicodeDecodeError:
print("Cannot decode file")

4. CLI Integration

if args.command == "delete":
safe_delete(args.path)
elif args.command == "read":
safe_read(args.path)

5. Best Practices

  • Catch specific exceptions first.
  • Provide clear error messages.
  • Use logging in larger projects.

6. Next Steps

✅ Our program is now more robust.
Next: Refactor with OOP for better design.