Piszę funkcję zdefiniowaną przez użytkownika w SQL Server 2008. Wiem, że funkcje nie mogą generować błędów w zwykły sposób - jeśli spróbujesz dołączyć instrukcję RAISERROR SQL zwraca:
Msg 443, Level 16, State 14, Procedure ..., Line ...
Invalid use of a side-effecting operator 'RAISERROR' within a function.
Ale faktem jest, że funkcja pobiera dane wejściowe, które mogą być nieprawidłowe, a jeśli tak, to nie ma żadnej znaczącej wartości, którą funkcja może zwrócić. Co mam wtedy zrobić?
Mógłbym oczywiście zwrócić wartość NULL, ale każdemu deweloperowi, który użyłby tej funkcji, byłoby trudne do rozwiązania tego problemu. Mógłbym też spowodować dzielenie przez zero lub coś w tym rodzaju - wygenerowałoby to komunikat o błędzie, ale wprowadzający w błąd. Czy jest jakiś sposób, żebym mógł w jakiś sposób zgłosić swój własny komunikat o błędzie?