Jeśli potrzebujesz wyjątków, musisz użyć PDO.
w przypadku funkcji pg_* i Twojego kodu musisz sprawdzić, czy $result ma wartość false, jeśli tak, to wystąpił błąd.
Możesz uzyskać opis błędu za pomocą pg_last_error()
Coś takiego:
$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';
}
Tak więc, w zasadzie, za każdym razem, gdy używasz funkcji pg_*, musisz sprawdzić, czy zwrócono wartość false, tak po prostu jest z tymi funkcjami.
Tak, możesz zbudować własne wrappery, więc zamiast pg_query* wywołujesz my_db_query(), która następnie wykonuje sprawdzanie wartości zwracanych i zgłaszanie wyjątków.
Możesz też skorzystać z PDO, które jest w stanie wyrzucić wyjątek PDOException dla wszystkich błędów, które mogą wystąpić.