Attenzione, la classe Error non è sottoclasse di Exception, per questo la clausola

Codice PHP:
    catch(Exception e){

    } 
non può catturare un Error.

Per catturare un Error è necesario

Codice PHP:
    catch(Error e){

    } 
Nota che il catch(Error) non ti cattura le Exception perchè a sua volta Error non è superclase di Exception, quindi per catturare sia errori che eccezioni sono necessari entrambi i catch, oppure per catturarli entrambi:

Codice PHP:
    catch(Throwable e){

    } 

ciao.