title: PostgresException return null from GCP when call function have an error by constraint FK
body: <p>I am using Google Cloud Platform to host my database postgres 9.6.</p>
  
  <p>I have sent data to force error in FK for an update, in <code>filas = cmd.ExecuteNonQuery()</code> the result is 0 rows, as I hoped. But <code>catch (PostgresException msg_exception)</code> does not recognize the exception and <code>PostgresNotice msg_notice = new PostgresNotice()</code> returns <code>NULL</code> too when try to use the <code>msg_notice</code>.</p>
  
  <pre class="lang-cs prettyprint-override"><code>using(var conn = new NpgsqlConnection(connString)) {
   conn.Open();
   conn.TypeMapper.MapComposite &lt; DTO_Usuario &gt; ("t_usuario");
  
   using(var transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted)) {
    try {
     using(NpgsqlCommand cmd = new NpgsqlCommand(@ "SELECT ent_usuario_update(@p)", conn)) {
      cmd.Parameters.Add(new NpgsqlParameter {
       ParameterName = "p",
        Value = row_usuario
      });
  
      PostgresNotice msg_notice = new PostgresNotice();
      try {
       filas = cmd.ExecuteNonQuery();
  
       transaction.Commit();
  
       if (filas &gt; 0) {
        row_usuario.Nom_usuario = msg_notice.MessageText;
       } else {
        row_usuario.Nom_usuario = msg_notice.MessageText;
       }
  
      } catch (PostgresException msg_exception) {
       transaction.Rollback();
       row_usuario.Des_cargo = msg_exception.SqlState;
  
      }
      return Ok(row_usuario);
     }
    } catch (NpgsqlException) {
     transaction.Rollback();
     return NoContent();
    }
   }
  }
  </code></pre>
  
  <p>My function in Postgres:</p>
  
  <pre><code>CREATE OR REPLACE FUNCTION public.ent_usuario_update(
  p_usuario t_usuario)
  RETURNS void
  
  update usuario
     set des_cargo=p_usuario.des_cargo,
         nom_usuario = p_usuario.nom_usuario,
         id_organizacion = p_usuario.id_organizacion
   where id_instancia = p_usuario.id_instancia
     and id_mandante = p_usuario.id_mandante
     and id_usuario=p_usuario.id_usuario;
  
  GET DIAGNOSTICS filas = ROW_COUNT;
  
  IF filas == 0 THEN
      RAISE INFO 'No se actualizo usuario % en instancia %', p_usuario.id_usuario,  p_usuario.id_instancia
      using message = 'No actualizo';
  ELSE
      RAISE INFO 'Actualización Realizada'
      using message = 'No actualizo';
  END IF;
  
  RETURN;
  
  END;
  </code></pre>