<?php
/*
Curso: PHP Exceptions: Tratamento de erros
Capítulo 04 atividade 06:
Vimos como fazer um bloco catch pegar diversos "problemas", sem utilizar o multi-catch, informando apenas um tipo.
*/
try{
$array = new SplFixedArray(3);
$array[0] = 'João';
$array[1] = 'Maria';
$array[2] = 'Eduardo';
$array[3] = 'Leonardo';
} /* Abstração das classes Exception e Error */
catch(Throwable $t){
/* Polimorfismo para resposta do método */
echo $t->getMessage() . PHP_EOL;
echo $t->getLine() . PHP_EOL;
echo $t->getTraceAsString() . PHP_EOL;
}
/*
Uma dúvida,
No caso do execício a captura da exceção não parece ser realizada pelo polimorfismo e sim pela abstração das classes que herdam da interface.
Pois a interface genérica das classes Exception e Error é herdada de Throwable que é sua abstração.
Neste caso a resposta B (Através da abstração da orientação a objetos) não estaria mais adequada?
Acho que entendi o que ocorreu na pergunta,
quando fala do bloco catch pegar diversos problemas não fica claro se os problemas os herdados de Throwable ou são as mensagens a serem exibidas dos métodos.
*/