История изменений
Исправление
Legioner,
(текущая версия)
:
Непонятно, что не так с исключениями. Возвращаемые ошибки точно так же оборачивают любые произвольные ошибки, поэтому ничем от произвольных исключений по сути не отличаются. Если тебе нужно обрабатывать все ошибки, лови все исключения. Если тебе нужно обрабатывать конкретную ошибку, лови конкретное исключение. Единственная проблема с исключениями это то, что оно может вылететь почти в любой строчке и поломать состояние. Но на практике в той же Java для меня это никогда не было существенной проблемой. При наличии автоматического управления памятью и использования современных подходов к дизайну программы, в частности максимального использования иммутабельных объектов, всё просто работает.
Возможно за исключения приходится платить нетривиальную цену в плане производительности. Тут не разбираюсь. Вроде говорят, что пока исключение не вылетело, всё вообще бесплатно и даже быстрей кодов возврата, а раскрутка стека уже дорогая. Но может это устаревшая информация.
Исправление
Legioner,
:
Непонятно, что не так с исключениями. Возвращаемые ошибки точно так же оборачивают любые произвольные ошибки, поэтому ничем от произвольных исключений по сути не отличаются. Если тебе нужно обрабатывать все ошибки, лови все исключения. Если тебе нужно обрабатывать конкретную ошибку, лови конкретное исключение. Единственная проблема с исключениями это то, что оно может вылететь почти в любой строчке и поломать состояние. Но на практике в той же Java для меня это никогда не было существенной проблемой. При наличии автоматического управления памятью и использования современных подходов к дизайну программы, в частности максимального использования иммутабельных объектов, всё просто работает.
Исходная версия
Legioner,
:
Непонятно, что не так с исключениями. Возвращаемые ошибки точно так же оборачивают любые произвольные ошибки, поэтому ничем от произвольных исключений по сути не отличаются. Если тебе нужно обрабатывать все ошибки, лови все исключения. Если тебе нужно обрабатывать конкретную ошибку, лови конкретное исключение. Единственная проблема с исключениями это то, что оно может вылететь почти в любой строчке. Но на практике в той же Java для меня это никогда не было существенной проблемой. При наличии автоматического управления памятью и использования современных подходов к дизайну программы, в частности максимального использования иммутабельных объектов, всё просто работает.