Как перехватить любое исключение в php?
В старых версиях PHP деление на ноль никакое не исключение, а обычная ошибка.
О чем ясно написано в выводимом сообщении: Warning: Division by zero in ...

Чтобы перехватывать ошибки, их надо конвертировать в исключения. В простейшем варианте
set_error_handler(function ($level, $message, $file = '', $line = 0)
{
    throw new ErrorException($message, 0, $level, $file, $line);
});
После установки такого обработчика все ошибки будут автоматически конвертироваться в исключения, и соответственно могут быть пойманы через try..catch:

Fatal error: Uncaught ErrorException: Division by zero
Ловите \Throwable $e
Это интерфейс всех исключений