Re[2]: А идет ли развитие в области альтернатив исключениям?
От: _hum_ Беларусь  
Дата: 25.03.16 21:12
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, _hum_, Вы писали:


__>>В с++ в направлении усовершенствования исключений идет заметное движение. А как вообще в мире и в с++ в частности обстоит дело с развитием альтернатив исключениям (теми же кодами возвратов ошибок)?

__>>Нет ли каких-нибудь подходов хотя бы с облегчением передачи и унификацией кодов возвратов, например?

EP>Есть некий симбиоз возвращаемых значений и исключений — expected<T>


выглядит страшнова-то.. а вот указанный boost::optional<T> уже "ближе", но все равно еще не то...

__>>Или каких-нибудь замыканий (монад?), наподобие добавления к множеству возможных числовых результатов операций значения NaN, которое выводит деление на нуль из области исключительных ситуаций, и тем самым позволяет избавиться от уймы проверок на промежуточных этапах?


EP>Исключения это и есть монада, которая позволяет "избавиться от уймы проверок на промежуточных этапах"


мм... может, я неправильно выразился. я имел ввиду подход, когда вместо того, чтобы считать a/0 неопределенностью, просто расширяют тип вещественных чисел за счет введения значения NaN, для которого полагается
a @ NaN -> NaN
NaN @ NaN -> NaN
(здесь @ — любая операция)

в этом случае даже если у вас произойдет деление на нуль, поток управления все равно продолжит течь, как ни в чем не бывало, предоставляя вам свободу выбора, где делать проверку на валидность соответствующего значения.

в случае же с эксепшенами обычный поток управления с необходимостью будет прерываться. а значит, программисту придется "всовывать" в обычную логику еще и логику перехватов и обработок исключений.

и в моем представлении монады — это именно подобие реализации механизма NaN.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.