Questão FC373373
Considere o bloco PHP abaixo. Caso o segundo parâmetro passado para o método divide seja 0 ao invés de 10, ocorrerá uma exceção. Para tratar adequadamente esta exceção a chamada ao
Desenvolvimento Web
FCC · 2022
Considere o bloco PHP abaixo.

Caso o segundo parâmetro passado para o método divide seja 0 ao invés de 10, ocorrerá uma exceção. Para tratar adequadamente esta exceção a chamada ao método realizada pelo comando echo divide(5, 10); deverá mudar para
- try {echo divide(5,0);} catch(DivisionByZeroException $e) {echo "Impossível dividir.";}
- try {divide(5,0);} catch(DivisionException $e) {echo "Impossível dividir.";}
- try {echo divide(5,0);} catch(Exception $e) {finally echo "Impossível dividir.";}
- try {echo divide(5,0);} catch(Exception $e) {echo "Impossível dividir.";}
- try {divide(5,0);} catch(Exception $e) {printf "Impossível dividir.";}
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
Na alternativa correta o trecho está envolvido por try e catch: try { echo divide(5,0); } catch(Exception $e) { echo "Impossível dividir."; }.
Isso significa que a chamada a divide(5,0) fica protegida: se a função lançar uma Exception (por exemplo, "Divisão por zero"), a execução dentro do try é interrompida no ponto do lançamento e o fluxo salta para o catch.
O bloco catch recebe o objeto de exceção na variável $e, permitindo tratar o erro sem gerar um erro fatal. Neste caso, imprime-se uma mensagem amigável ("Impossível dividir.") e o programa continua.
Opcionalmente poderia-se usar $e->getMessage() para detalhes; porém a estrutura apresentada é sintaticamente correta e adequada para capturar e tratar a exceção.
Conteúdo do catálogo FC Concursos · Atualizado em