Use Throwable class instead Exception class:
try {
$var = $object->getCollection()->first()->getItem()->getName();
} catch(Throwable $e) {
$var = null;
$msg = $e->getMessage();
}
Since PHP 7.0 exceptions thrown from fatal and recoverable errors are instances of a new and separate exception class: Error
. This new Error
class implements Throwable
interface, which specifies methods nearly identical to those of Exception
. Because Throwable
is higher in hierarchy you can catch with it both, Error and Exception.
interface Throwable
|- Exception implements Throwable
|- ...
|- Error implements Throwable
|- TypeError extends Error
|- ParseError extends Error
|- ArithmeticError extends Error
|- DivisionByZeroError extends ArithmeticError
|- AssertionError extends Error
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…