Каков наилучший способ обработки функции, которая может иногда не выполнять оценку, но даже если она не работает, не требует остановки родительской процедуры, хотя иногда может потребоваться объяснение для пользователя?
В моем коде есть такая функция, которая возвращает число. При кодировании самым простым подходом было бы сделать функцию обнуляемой и возвращать ноль, если она не может быть оценена. Таким образом, вызывающая подпрограмма может продолжаться, в то же время зная, что функции не удалось вернуть число.
Однако, в зависимости от обстоятельств, иногда я хочу показать причину сбоя пользователю, чтобы он знал, что исправить. Очевидно, что просто возвращение нулевого не достаточно информации. Должен ли я вызывать сообщения внутри самой функции, так как она оценивает, чтобы анонимные слушатели могли ее перехватить, чтобы она отображалась при желании?
(Для тех, кто справедливо указывает на то, что логические функции не должны отвечать за создание пользовательских сообщений, я не имел в виду, что функция генерирует полнотекстовое сообщение, просто как-то передает причину проблемы, чтобы пользовательский интерфейс мог позже проанализировать, что в сообщение)
Другой вариант, который, я полагаю, будет генерировать исключения внутри функции, если она не может оценить, а затем перехватывать и интерпретировать сообщения пользователя, если это необходимо. Однако, как уже говорилось, неспособность оценить, как правило, не означает остановки процедуры, и теперь мне придется каждый раз использовать блок Try ... Catch вокруг вызова функции.