Ola povo! Seguinte: Quando o professor usa o bloco try catch, ele tenta dar catch num tipo de erro RunTimeException, e assim ele obtem a mensagem que ele definiu la no metodo insert da classe PdoStudentRepository.
Aqui, quando eu faco o mesmo, eu nao obtenho a mensagem definida no metodo insert. Depois de pesquisar um pouco, notei que o $stmt = $this->connection->prepare($insertQuery); ao inves de retornar false, ja retorna uma PDOException, e apesar do comando echo $e->getMessage() . PHP_EOL; do catch capturar um erro, ele nao captura o meu erro. Ele captura o PDOException, imprimindo a mensagem:
SQLSTATE[HY000]: General error: 1 no such table: studentaPq isso acontece? Pq o catch define que esta tentando pegar um RunTimeException, mas pega o outro erro? E pq mesmo assim, o $e->getMessage(); funciona, porem exibindo outra mensagem?