Regel
Prüfen Teiler vor Division .
Division durch Null verursacht Laufzeit Abstürze und
müssen verhindert verhindert mit ausdrücklichen Kontrollen
Unterstützte Sprachen: 45+Einleitung
Eine Division durch null führt in den meisten Sprachen zu sofortigen Laufzeitfehlern und bringt Anwendungen ohne ordnungsgemäße Fehlerbehandlung zum Absturz. Benutzereingaben, berechnete Werte oder Datenbankergebnisse können unerwartet Nulldivisor-Fehler verursachen. Eine einzige ungeprüfte Divisionsoperation kann Produktionsdienste zum Erliegen bringen, wenn Edge-Case-Daten den Fehler auslösen.
Warum es wichtig ist
Systemstabilität: Eine Division durch null kann die Anwendung in Sprachen wie Java, C und Python sofort zum Absturz bringen. Im Produktivbetrieb bedeutet dies verlorene Anfragen, unterbrochene Transaktionen und Dienstausfälle. Selbst in JavaScript, wo die Division durch null zurückgibt Unendlichkeit oder NaN, diese Werte sich durch Berechnungen ausbreiten, was zu falschen Ergebnissen führt.
Datenintegrität: Wenn Divisionsfehler während der Batch-Verarbeitung oder in Datenpipelines auftreten, können Teilergebnisse vor dem Absturz geschrieben werden. Dies hinterlässt Daten in inkonsistenten Zuständen, was eine manuelle Wiederherstellung erfordert und nachgeschaltete Systeme, die von vollständigen Daten abhängen, potenziell beschädigen kann.
Angriffsfläche: Angreifer können absichtlich Eingaben erstellen, die Nullteiler erzeugen, um Dienste zum Absturz zu bringen. API-Endpunkte, die Berechnungen ohne Validierung der Teiler durchführen, werden zu Denial-of-Service-Vektoren. Eine einzige bösartige Anfrage kann den gesamten Dienst lahmlegen.
Code-Beispiele
❌ Nicht konform:
function calculateAverageOrderValue(totalRevenue, orderCount) {
return totalRevenue / orderCount;
}
function calculateConversionRate(conversions, visitors) {
return (conversions / visitors) * 100;
}
Warum es falsch ist: Beide Funktionen stürzen ab, wenn der Divisor null ist. calculateAverageOrderValue() schlägt fehl, wenn orderCount ist 0, und calculateConversionRate() schlägt fehl, wenn Besucher ist 0. Diese Szenarien sind realistisch: Neue Unternehmen haben null Bestellungen, Kampagnen können null Besucher haben.
✅ Konform:
function calculateAverageOrderValue(totalRevenue, orderCount) {
if (orderCount === 0) {
return 0;
}
return totalRevenue / orderCount;
}
function calculateConversionRate(conversions, visitors) {
if (visitors === 0) {
return 0;
}
return (conversions / visitors) * 100;
}Warum das wichtig ist: Explizite Prüfungen verhindern Abstürze durch Division durch Null. Funktionen geben sinnvolle Standardwerte (Null) zurück, wenn eine Division nicht möglich ist. Die Anwendung läuft auch bei Edge-Case-Eingaben weiter, wodurch Stabilität und Verfügbarkeit erhalten bleiben.
Fazit
Validieren Sie Divisoren immer vor Divisionsoperationen. Geben Sie geeignete Standardwerte zurück, werfen Sie aussagekräftige Fehler oder behandeln Sie den Nullfall basierend auf der Geschäftslogik. Gehen Sie niemals davon aus, dass Divisoren ungleich Null sind, insbesondere bei Benutzereingaben oder externen Daten.
.avif)
