Vous devez indiquer à PDO que vous souhaitez qu'il lève des exceptions :
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Suite à votre commentaire ci-dessous, il apparaît que votre DSN est incorrect. Cela devrait être :
$connection = new PDO('mysql:host=localhost;dbname=my_db','my_username','xxxxxxx');
Notez que la syntaxe est dbname=
plutôt que dbname:
(que vous aviez à l'origine).