Существует гораздо более полезный способ вызвать ошибку внутри функции в TSQL, чем выполнение деления на ноль.В нашей компании мы создаем строку (описывающую саму проблему) и преобразуем ее в строку.
if @PersonID is null
insert into @Result values(@Right, cast('FT_AclGetAccess must never be called with @PersonID null' as int))
Это приведет к ошибке на сервере приложений, которая выглядит следующим образом:
Преобразование не удалось при преобразовании значения varchar 'FT_AclGetAccess никогда не должен вызываться с @PersonID null' в тип данных int.
Небольшая манипуляция строк на сервере приложений, и вы получаетедовольно вменяемое сообщение об ошибке для файла журнала!; -)