Здравствуйте, netch80, Вы писали:
N>Попытка деления на 0 вообще бессмысленна в пределах целых чисел. Что именно возвращать в таком легко детектируемом случае — вопрос реализации.
Я так и не понял, в чем смысл. Какая разница, что с чем сравнивать — частное с -1, или делитель с нулем?
А если они хотели избавить разработчиков языков от необходимости поддерживать системные механизмы обработки исключений, то они фактически предложили создавать реализации языков так, чтобы любое некорректное обращение к памяти сразу и наглухо валило всю программу, без возможности это обработать.
N>Сейчас тебе точно так же ни C ни C++ ничего не гарантируют.
И поэтому решили сделать очередной кривой костыль?
N>должны были по умолчанию генерировать исключение
Процессор его и генерирует. Вроде никогда не возникало сколько-нибудь значимых проблем с реализацией обработки.
N>Ну покажи это в современном языке. Я вот хочу видеть что-то в духе C# c = (checked)(a+b); — контекстно и в самом языке. А вместо этого должен писать свои оболочки или использовать от какого-то странного вендора
Эти вопросы задавайте разработчикам языков и их реализаций. Я сам уже лет тридцать, как в изумлении от того, насколько упорно не желают реализовать даже самые примитивные и дешевые средства, сильно упрощающие жизнь.
N>И было установлено при написании кода VM, что она не даст значение выше 64MB.
Так и ограничили бы принудительно прямо внутри функции — она и не давала бы никогда.