Criei uma classe de exemplo tentando simular alguns erros para capturá-los mas não nenhum está caindo nos catchs. Os erros apenas estão sendo lançados para o usuário sem tratamento. testei com as versões 7.2 e 7.4 do php. Também habilitei as configurações de erro ensinadas neste modulo.
<?php
class Excecao
{
public function lancaError()
{
try {
$v = 5 / 0;
$arr = oi, teste;
return "ok";
} catch (\Exception $exception) {
return "Houve uma exceção";
} catch (\DivisionByZeroError $error) {
return "Houve uma divisao por zero";
} catch (\ParseError $error) {
return "Houve um error de parse";
} catch (\Throwable $th) {
return "Erro generico";
}
}
}
$teste = new Excecao();
echo $teste->lancaError();