> Для всех практических нужд нуль в знаменателе - признак того, что у нас на входе неверные данныеТ.е. вы программным исключением проверяете данные на правильность? Вас чем-то обидели условия или вы дали обет прогить 10 лет не написав ни одного "если-то"?
Мда... Всё хуже, чем я думал...
С абстрактным мышлением у вас тоже всё плохо, поэтому попробую объяснить на пальцах.
int res = MAX_INT + MAX_INT;
приведёт к ошибке переполнения, которая будет автоматически обработана и вы об этом даже не узнаете. В асме был бы установлен флаг переполнения, но Си его игнорирует.
Умножение чисел со знаком приводят к ошибкам сопроцессора и переполнениям, которые язык Си игнорирует.
int res = MAX_INT / 0;
int res = 0 / 0;
тоже приводит к ошибке, но эта ошибка вызывает в Си прерывание выполнения программы.
Все перечисленные выше ошибки являются ошибками неверных данных для выполнения операции. И на все, в общем случае, нужно было писать "если-то".
Исторически сложилось, что именно деление на 0 вызывает прерывание выполнения, но это не делает её более или менее уникальной, чем любая другая ошибка, связанная с неверными данными.
Правильным (единообразным с другими обработчиками ошибок) поведением было бы считать нулевым результат от деления на 0, что и было реализовано в ЯП Swift.