You can catch both exceptions and errors by catching(Throwable)
PHP 7 changes how most errors are reported by PHP. PHP 5 で使われていたこれまでのエラー報告メカニズムを使うかわりに、 大半のエラーを Error 例外としてスローするようになったのです。
通常の例外と同様、Error 例外も、 最初にマッチした catch ブロックで現れます。 マッチするブロックがなければ、set_exception_handler() で設定したデフォルトの例外ハンドラが呼ばれます。 デフォルトの例外ハンドラもない場合は、例外が fatal error に変換されて、 これまでのバージョンのエラーと同じように扱われます。
Error クラスは
Exception を継承していないので、
キャッチし損ねた例外を
catch (Exception $e) { ... }
ブロックで受け止めているような PHP 5 のコードでは、
Error をキャッチできません。
catch (Error $e) { ... } ブロックを用意するか、あるいは
set_exception_handler() でハンドラを設定する必要があります。
You can catch both exceptions and errors by catching(Throwable)