Universal exception handler
Exceptions are especially useful when used in conjunction with code in a try/catch
block. Using this construct, however, can be awkward in some situations, making code virtually unreadable. Another consideration is that many classes end up throwing exceptions that you have not anticipated. In such cases, it would be highly desirable to have some sort of fallback exception handler.
How to do it...
- First, we define a generic exception handling class,
Application\Error\Handler
:namespace Application\Error; class Handler { // code goes here }
- We define properties that represents a log file. If the name is not supplied, it is named after the year, month, and day. In the constructor, we use
set_exception_handler()
to assign theexceptionHandler()
method (in this class) as the fallback handler:protected $logFile; public function __construct( $logFileDir = NULL, $logFile = NULL) { $logFile = $logFile ?? date('Ymd') . '.log'; $logFileDir = ...