PHP Error Handling
Priority: P0 (CRITICAL)
Structure
text
src/
└── Exceptions/
├── {Domain}Exception.php
└── Handler.php
Implementation Guidelines
- •Exception-Driven: Prefer throwing exceptions over returning
false. - •Throwable Interface: Catch
Throwablefor both Errors and Exceptions. - •Custom Exceptions: Extend
RuntimeExceptionfor domain-specific errors. - •Multi-catch: Use
catch (TypeA | TypeB $e)for identical handling. - •Finally Cleanup: Use
finallyto ensure resource release. - •Global Handling: Set
set_exception_handlerin entry points. - •PSR-3 Logging: Log critical faults using standard loggers.
Anti-Patterns
- •Error Suppression: No @: Avoid suppressing errors with
@. - •Silent Catch: No Empty Catches: Log or handle all caught exceptions.
- •Logic Flow: No Flow Control: Don't use exceptions for expected logic.
- •Panic Display: No display_errors: Log to file, never to production screen.