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: studenta
Pq 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?