In PHP7, most are now reported as exceptions. Only a few fatal errors halt script execution; otherwise, if you are carrying out error or exception handling, it will not halt the script. This is because now the Errors
class implements a Throwable
interface just like the Exception
class, which also implements Throwable
. So now, in most cases, fatal errors can be avoided through exception handling.
Here are some sub-classes of the error class:
TypeError
ParseError
ArithmeticError
DivisionByZeroError
AssertionError
This is how you can simply catch an error and handle it:
try { fn(); } catch(Throwable $error){ echo $error->getMessage(); //Call to undefined function fn() }
Here, $error->getMessage()
is a method that is actually returning this message as a string. In our preceding example, the message will be similar to this: Call to undefined function fn()
.
This is not the only method you can use. Here is a list of methods that are defined in the Throwable
interface...