Si desea excepciones, debe usar PDO.
en el caso de las funciones pg_* y su código, debe verificar si $result tiene el valor de false, si lo tiene, entonces ocurrió un error.
Puede obtener la descripción del error con pg_last_error()
Algo como esto:
$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';
}
Entonces, básicamente, cada vez que usa una función pg_*, debe verificar si se devolvió falso, así es con esas funciones.
Sí, puede crear sus propios envoltorios, de modo que en lugar de pg_query* llame a my_db_query(), que luego verifica el valor devuelto y lanza excepciones.
O bien, puede optar por PDO, que puede generarle una excepción PDO para todos los errores que pueden ocurrir.