Здравствуйте, Andrew S, Вы писали:
AS>Хочется формальных критериев, когда надо только исключения, когда только результат, когда нужно, например, вот такое раздвонение интерфейса.
Имхо, нету таких формальных критериев.
Все зависит от пользователя: для одного неудача — штатная ситуация, а для другого — фатальная ошибка.
Например, должна ли бросать функция открытия файла, если файл не найден?
Если у тебя список файлов, и тебе нужно попробовать их все по порядку и использовать первый нашедшийся, то неудача с одним файлом — это штатный эпизод перебора файлов, а фатальная ошибка — это если вообще ни одного файла нет.
А если у тебя всего лишь одно имя файла, то невозможность его открыть — это фатальная ошибка.
И всё это разнообразие может быть у пользователя в одной функции загрузки конфигов.
Так что правильный путь, имхо — это дать возможность пользователю самому решить, что ему нужно, например, как делает boost.asio (можно и по-другому делать).