Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

erro ao tratar DivisionByZeroError

Continua explodindo o erro mesmo fazendo o tratamento

function funcao1()
{
    echo 'Entrei na função 1' . PHP_EOL;

    try{
        funcao2();
    } catch (RuntimeException){
        echo "Aconteceu um problema na função 1" . PHP_EOL;
    } catch (DivisionByZeroError){
        echo "Erro ao dividir um número por zero" . PHP_EOL;
    }

    funcao2();
    echo 'Saindo da função 1' . PHP_EOL;
}

function funcao2()
{
    echo 'Entrei na função 2' . PHP_EOL;

    $divisao = intdiv(5, 0);

    $arrayFixo = new SplFixedArray(2);
    $arrayFixo[3] = 'Valor Qualquer';

    for($i = 1; $i <= 5; $i++){
        echo $i . PHP_EOL;
    }

    echo 'Saindo da função 2' . PHP_EOL;
}

echo 'Iniciando o programa principal' . PHP_EOL;

funcao1();

echo 'Finalizando o programa principal' . PHP_EOL;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas
solução!

Logo depois do bloco com o tratamento de erro " try catch" você colocou a function2() pra executar de novo, sem estar dentro de nenhum tratamento de erro. O console diz q é na linha 23. Creio que seja esse o erro

quando troca a ordem de execução e rodo a RunTimeException primeiro dá erro nela ao invés do DivisionByZeroError

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Valeu mesmo Luciano era isso mesmo, nem tinha reparado. Muito obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software