Wygląda na to, że SQL Server UDF są nieco ograniczone w ten (i wiele innych) sposób.
Naprawdę nie możesz wiele z tym zrobić - tak (na razie) po prostu jest. Albo możesz zdefiniować swój UDF, aby móc zasygnalizować stan błędu za pomocą jego wartości zwracanej (np. zwracając NULL w przypadku błędu), albo wtedy prawie musiałbyś uciec się do napisania procedury składowanej, która może mieć o wiele więcej obsługi błędów i pozwala na RAISERROR i tak dalej.
Tak więc albo zaprojektuj swój UDF, aby nie wymagał określonego sygnalizowania warunków błędu, albo musisz zmienić architekturę podejścia do korzystania z procedur składowanych (które mogą mieć wiele parametrów WYJŚCIA, a zatem mogą również zwracać kod błędu wraz z ładunkiem danych, jeśli tego potrzebujesz) lub zarządzany kod CLR dla Twojego UDF.
Przepraszam, nie mam lepszego pomysłu - na razie obawiam się, że to są twoje opcje - wybierz swój wybór.
Marek