Berserker писал(а):
При этом обработчик находится там же, где и охраняемый код.
Дулю с маком.
Напомню, что мы придерживаемся концепции не только раздельной компиляции, но и раздельного авторства кодов.
А в этой концепции совершенно жизненными становятся ситуации, когда в точке обнаружения криминала - совершенно непонятно что с ним делать. А там где можно принять логичное решение - неизвестно будут ли криминалы вообще.
Berserker писал(а):
Переписывать часть готового модуля/проекта, рассчитанного на исключения действительно неразумно.
Вы наверное непоняли... Посмотрите, я говорил про процедуру E2, которая вовсе не была рассчитана на исключения. Она просто таких словов не знала !!!
И здесь вопрос вовсе не в том, считаете ли Вы (или я) это разумным. Мы здесь совершенно не причем: у нас может просто не быть исходников.
Такова жизнь - в ней бывает и такое. И я вовсе в этом не виноват, между прочим
Berserker писал(а):
Обработка (а не вызов) исключений понадобились только в обработчиках мат.операторов. Здесь очень удобной оказалась предопределённая переменная RESULT. В итоге почти все условия и вызовы завязаны на ней.
Правильно ли я понял, что вместо того, чтобы не писать НИЧЕГО при обработке мат.операторов (в т.ч. и просто сложение), Вы отключали прерывания FPU, а после выполнения вычислительной операции - проверяли флаги (не будем уточнять какие) сопроцессора
Ну и естественно - возврат параметров FPU на место...
Если нет - Ваши коды были некорректны, мне кажется
Цена - коды, которые ненужны никому, и гробят быстродействие. Зачем-то... Причина - не более чем аллергия на исключения.
Про читаемость... Вы вообще-то чего писали: "калькулятор", или "проверятель корректности" входных данных ???
Berserker писал(а):
Ответ был: если программист способен справляться традиционными структурными средствами и код не становится кашей, а сохраняет лаконичность, то нужды в обработке ошибок исключениями нет и это скорее преимущество, чем недостаток, так как труда перейти на TRY..EXCEPT не составит, а вот обратно, по всей видимости, для многих тяжело
Ну я же Вам объяснил, что способен. Коды что ли привести ??? это несложно, они в репозитории лежат...
Добавлю, что способен еще и отличить разницу в эффективности "просто вычислений", от вычислений с проверками по каждой арифметической операции. А если не по каждой (ну например, только проверки на ноль перед делением), то и заметить разницу в надежности.
И еще добавлю, что задачей программиста (мне кажется) является не только "смочь" написать коды произвольной дикости, но еще и некие качественные характеристики этого кода.
Скажем - эффективность, хотя это и не единственное требуемое качество.
Berserker писал(а):
Нужно и название парадигме менять. С изменением аксиоматики изменяются и свойства кода
Нужно не название менять, а свое понимание происходящего вокруг нас.
Грубо говоря - это концептуальная разница между "математиками" и "физиками"
Первые создадут теорию, и жутко обижаются, когда она перестает соответствовать жизни. Несогласных причисляют к "еретикам". А у вторых - вывести теорию из той самой жизни. И здесь уже матаппарат есть не цель, а лишь средство. В общем - не самое главное (да простят меня математики).
Мое утверждение: если у структуры один выход - это слишком грубое приближение к реальной жизни.
В подавляющем числе случаев верное, и теоретическое описание - проще.
Но то, что не абсолютно всегда применимое - не моя придумка, и осознанная настолько, что сопровождается аппаратно (SEH - это + еще и совершенно определенные требования к среде исполнения, конечно же)
Да и нечего там особенно не меняется - какие были постусловия, такие и останутся... Подумайте пару минут, нет там проблем никаких особых.
Но правило для объединения этих "вторых выходов" один результирующий - конечно надо явно произнести. Для всех структурных композиций.
И это ровно то же, что Вы делаете, возвращая коды ошибок.
Все тоже самое, только писать ничего не надо - оно и так именно так уже и происходит.
Отсюда вопрос: почему явные возвраты кодов каких-то ошибок, даже теми, кто и слово "ошибка" никогда не слышал - НЕ вызывают аллергию ??? А все абсолютно то же самое
в исполнении, но без этих рукописных заморочек - почему-то вызывают