Мы можем структуру на выходе выдавать.

Сообщение от
silent_1991
Knjagskij, ну, навскидку: 1) придётся на всех уровнях вложенности вызовов проверять коды ошибок и в случае неудачи пробрасывать код наверх, в место, где нужно обработать ошибку; 2) код ошибки не несёт дополнительной информации. Не открылся файл? Отлично. А какой файл? Конфиг? Или лог? Или какой-нибудь временный файл? Не будете же вы на эти три однородных ошибки 3 кода заводить.
А как нам поможет исключение в этом случае, там же тоже названию сопоставляется обработчик.
Не разобрался, чем пара (throw, catch) отличается от (return, swich(if))?