PDO не будет бросать исключения, если вы не скажете это. Вы запустите:
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
на объекте PDO?