Você precisa informar ao PDO que deseja que ele lance exceções:
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Após seu comentário abaixo, é evidente que seu DSN está incorreto. Deveria ser:
$connection = new PDO('mysql:host=localhost;dbname=my_db','my_username','xxxxxxx');
Observe que a sintaxe é
dbname=
em vez de dbname:
(que você tinha originalmente).