FC ConcursosFC Concursos

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

  1. try {echo divide(5,0);} catch(DivisionByZeroException $e) {echo "Impossível dividir.";}
  2. try {divide(5,0);} catch(DivisionException $e) {echo "Impossível dividir.";}
  3. try {echo divide(5,0);} catch(Exception $e) {finally echo "Impossível dividir.";}
  4. try {echo divide(5,0);} catch(Exception $e) {echo "Impossível dividir.";}
  5. 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

Continue aprendendo