Ако искате изключения, тогава трябва да използвате PDO.
в случай на pg_* функции и вашия код, трябва да проверите дали $result има стойността на false, ако има, тогава е възникнала грешка.
Можете да получите описанието на грешката с pg_last_error()
Нещо като това:
$result = pg_query_params ( $dbconn,
'DELETE FROM questions
WHERE question_id = $1',
array ( $question_id )
);
if ($result === false) {
print pg_last_error($dbconn);
} else {
print 'everything was ok';
}
Така че по принцип всеки път, когато използвате функция pg_*, трябва да проверявате дали е върнато false, точно така е с тези функции.
Да, можете да създадете свои собствени обвивки, така че вместо pg_query* да извикате my_db_query(), което след това извършва проверка на връщаната стойност и изхвърляне на изключения.
Или можете да използвате PDO, който може да ви изведе PDOException за всички грешки, които могат да възникнат.