Parece que as UDFs do SQL Server são um pouco limitadas dessa (e muitas outras) maneiras.
Você realmente não pode fazer muito sobre isso - é (por enquanto) apenas do jeito que é. Ou você pode definir sua UDF para que você possa sinalizar de volta uma condição de erro por meio de seu valor de retorno (por exemplo, retornando NULL em caso de erro), ou então você quase teria que recorrer a escrever um procedimento armazenado, que pode ter muito mais tratamento de erros e permite RAISERROR e assim por diante.
Portanto, projete sua UDF para não exigir sinalização específica de condições de erro, ou então você precisa rearquitetar sua abordagem para usar procedimentos armazenados (que podem ter vários parâmetros OUTPUT e, portanto, também podem retornar código de erro junto com sua carga de dados, se você precisa disso) ou código CLR gerenciado para suas UDFs.
Desculpe, não tenho uma ideia melhor - por enquanto, infelizmente, essas são suas opções - faça a sua escolha.
Marco