LAT написал(а):
Имхо, выбор решения зависит от того, что собирается делать с ошибкой тот, кто вызовет Вашу функцию, т.е. что ему нужно:
1) просто признак ошибки - достаточно бросить [в общем-то произвольный] код ошибки
Я пока так и поступил, если фм дает ошибку, передаю дальше - не сработал такой-то ФМ
LAT написал(а):
2) ФМ, вернувший ошибку и код ошибки - информация содержится в таблицах fupararef и funct
Как-то мудрёно, ФМ не настолько сложный, чтобы такую абстракцию городить.
В принципе хотелось бы как в JAVA - возникло исключение, и оно поднимается по колл-стеку, пока его кто-нибудь не поймает.
в принципе можно обернуть коды ошибок в класс исключений, чтобы выше те кто используют фм могли его в TRY CTCH обернуть