Diagnostic

Le dénominateur provenant de l’utilisateur peut être nul. La division provoquera alors une exception ou produira Infinity/NaN selon le langage et le type numérique. Retourner arbitrairement 0 masquerait l’erreur et créerait une valeur incorrecte.

Correction

Valider côté serveur que l’entrée est numérique, finie et non nulle avant toute division, puis renvoyer une erreur explicite si elle est invalide.

import math

def division_sure(numerateur, saisie_denominateur):
try:
denominateur = float(saisie_denominateur)
except (TypeError, ValueError):
raise ValueError("Le dénominateur doit être numérique")

if not math.isfinite(denominateur):
raise ValueError("Le dénominateur doit être fini")

if denominateur == 0:
raise ValueError("Le dénominateur ne peut pas être nul")

return numerateur / denominateur

Pour une API, convertir cette erreur en réponse client adaptée, par exemple HTTP 422, sans exposer de trace d’exécution. Un seuil proche de zéro ne doit être ajouté que si le domaine métier le justifie.