Jeśli wystąpi błąd, PDO zgłosi wyjątek, który możesz przechwycić. Zawijaj swój kod za pomocą try catch, który powinien przechwycić wszelkie wyjątki.
try {
$rs = $db->prepare('SELECT * FROM foo');
$rs->execute();
$foo = $rs->fetchAll();
} catch (Exception $e) {
echo 'Error: '.$e->getMessage();
}