https://msdn.microsoft.com/ru-ru/library/system.di...
Деление значения с плавающей запятой на ноль не вызывает исключения;
В чем преимущество DivideByZeroException() перед простым IFом ? Я могу с помощью if на 0 проверить.
Ну проверите вы на ноль, и то что вернете из функции? Если ноль, то это будет неверный результат.
Поэтому проверяем на ноль вручную и кидаем исключение, это лучше чем получить неверное значение.
Если не кидать исключение, то вернется "Infinity", оно вам надо? )