EDIT:
В последнее время я получаю много отрицательных отзывов ... так что я решил добавить примечание, что этот ответ был написан до того, как вопрос подвергся последнему редактированию, где возвращаемый ноль был выделен как опция ... кажется очень приемлемым. Некоторые из моих ответов были адресованы таким же проблемам, как и Эдвардо, в комментариях, которые, похоже, выступали за возвращение 0. Это случай, против которого я выступал.
Ответ:
Я думаю, что здесь есть основная проблема, которая заключается в том, что деление на 0 не является законным. Это признак того, что что-то в корне неправильно. Если вы делите на ноль, вы пытаетесь сделать что-то, что не имеет смысла математически, поэтому никакой числовой ответ, который вы можете получить, не будет действительным. (Использование нуля в этом случае разумно, так как это не значение, которое будет использоваться в последующих математических вычислениях).
Таким образом, Эдвардо спрашивает в комментариях «что если пользователь вводит 0?», И он настаивает на том, что все должно быть в порядке, чтобы получить 0 взамен. Если пользователь помещает ноль в сумму, и вы хотите, чтобы 0 возвращалось, когда они это делают, то вам нужно вставить код на уровне бизнес-правил, чтобы перехватить это значение и вернуть 0 ... не должно быть какого-то особого случая, когда деление на 0 = 0.
Это тонкое различие, но оно важно ... потому что в следующий раз, когда кто-то вызовет вашу функцию и ожидает, что она будет делать правильные вещи, и он сделает что-то напуганное, что не математически правильно, а просто обрабатывает конкретный крайний случай у него есть хороший шанс укусить кого-нибудь позже. Вы на самом деле не делите на 0 ... вы просто возвращаете плохой ответ на плохой вопрос.
Представь, что я что-то кодирую, и я облажался. Я должен был прочитать значение масштабирования измерения радиации, но в странном граничном случае я не ожидал, я прочитал в 0. Затем я опускаю свое значение в вашу функцию ... вы возвращаете мне 0! Ура, нет излучения! За исключением того, что это действительно там, и это просто, что я передал плохую ценность ... но я понятия не имею. Я хочу, чтобы подразделение выдавало ошибку, потому что это признак того, что что-то не так.