EDITAR: Recibo muchos votos negativos sobre esto recientemente ... así que pensé en agregar una nota de que esta respuesta se escribió antes de que la pregunta se sometiera a su edición más reciente, donde el retorno nulo se destacó como una opción ... .que parece muy aceptable. Parte de mi respuesta se dirigió a preocupaciones como la de Edwardo, en los comentarios, que parecía estar abogando por devolver un 0. Este es el caso contra el que estaba criticando.
RESPUESTA: Creo que hay un problema subyacente aquí, que es que la división por 0 no es legal. Es una indicación de que algo está fundamentalmente mal. Si está dividiendo entre cero, está tratando de hacer algo que no tiene sentido matemáticamente, por lo que ninguna respuesta numérica que pueda obtener será válida. (El uso de nulo en este caso es razonable, ya que no es un valor que se utilizará en cálculos matemáticos posteriores).
Entonces, Edwardo pregunta en los comentarios "¿y si el usuario pone un 0?", Y defiende que debería estar bien obtener un 0 a cambio. Si el usuario pone cero en la cantidad, y desea que se devuelva 0 cuando lo hace, entonces debe poner un código en el nivel de reglas de negocio para capturar ese valor y devolver 0 ... no tiene algún caso especial donde la división por 0 = 0.
Esa es una diferencia sutil, pero es importante ... porque la próxima vez que alguien llame a su función y espere que haga lo correcto, y hace algo funky que no es matemáticamente correcto, pero solo maneja el caso particular, tiene un buenas posibilidades de morder a alguien más tarde. Realmente no estás dividiendo por 0 ... solo estás devolviendo una mala respuesta a una mala pregunta.
Imagina que estoy codificando algo y lo arruino. Debería estar leyendo en un valor de escala de medición de radiación, pero en un caso extraño que no anticipé, leí en 0. Luego dejo caer mi valor en su función ... ¡me devuelve un 0! ¡Hurra, no hay radiación! Excepto que realmente está allí y es solo que estaba pasando un mal valor ... pero no tengo idea. Quiero que la división arroje el error porque es la bandera de que algo está mal.