~$ g++ qwe.cpp -o qwe.o
qwe.cpp: In function ‘int main()’:
qwe.cpp:7: warning: division by zero
Деление на 0
Вопрос, почему при делении на ноль происходит исключение, вместо того, чтобы возвращать максимально для данного типа число? Какой в этом смысл? Просто сказать, что так нельзя?
Тем более деление на ноль идентифицируется самим процессором - выставляются соответствующие флаги после выполнения операции.
Цитата: sercher
Вопрос, почему при делении на ноль происходит исключение, вместо того, чтобы возвращать максимально для данного типа число? Какой в этом смысл? Просто сказать, что так нельзя?
потому что максимальное для данного типа число, тоже есть число, и почем компилятору знать его программист хочет получить или бесконечность
Код:
Ну и например при делении double a=5 на double b=0 исключения не будет,а a=∞
Единственное, что жаль, то что арифметические исключения не ловятся блоком try/catch, поэтому программист должен сам проверять делитель на ноль.
Очень трудно диагностируемые ошибки могут появиться, если сделать то, что вы предлагаете. И с математической стороны некорректно выглядеть будет.