php: try-catch not catching all exceptions php: try-catch not catching all exceptions php php

php: try-catch not catching all exceptions


try {  // call a success/error/progress handler} catch (\Throwable $e) { // For PHP 7  // handle $e} catch (\Exception $e) { // For PHP 5  // handle $e}


Solution #1

Use ErrorException to turn errors into exceptions to handle:

function exception_error_handler($errno, $errstr, $errfile, $errline ) {    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);}set_error_handler("exception_error_handler");

Solution #2

try {    // just an example    $time      = 'wrong datatype';    if (false === $timestamp = date("Y-m-d H:i:s", $time)) {        throw new Exception('date error');    }} catch (Exception $e) {    return false;}


The shorter that I have found:

set_error_handler(function($errno, $errstr, $errfile, $errline ){    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);});

Makes all errors becoming instance of catchable ErrorException