Como executar o comando RAISE do PostgreSQL dinamicamente

Como aumentar o erro da instrução SQL do PostgreSQL se alguma condição for atendida?
Eu tentei o código abaixo, mas recebi um erro.

CREATE OR REPLACE FUNCTION "exec"(text)
  RETURNS text AS
$BODY$ 
    BEGIN 
      EXECUTE $1; 
      RETURN $1; 
    END; 
$BODY$
  LANGUAGE plpgsql VOLATILE;

-- ERROR:  syntax error at or near "raise"
-- LINE 1: raise 'test' 

SELECT exec('raise ''test'' ') WHERE TRUE

Na aplicação realTRUE é substituído por alguma condição.

Atualizar

Eu tentei estender a resposta para passar parâmetros de mensagem de exceção. Tentei o código abaixo, mas recebi um erro de sintaxe. Como passar parâmetros de mensagem?

CREATE OR REPLACE FUNCTION exec(text, variadic ) 
  RETURNS void LANGUAGE plpgsql AS 
$BODY$  
BEGIN  
   RAISE EXCEPTION  $1, $2;  
END;  
$BODY$; 

SELECT exec('Exception Param1=% Param2=%', 'param1', 2 ); 

questionAnswers(1)

yourAnswerToTheQuestion