Regola
Verifica divisore prima di le operazioni .
La per zero provoca errori arresti anomali e
deve essere preveniti con controlli controlli.
Lingue supportate: 45+Introduzione
Nella maggior parte dei linguaggi di programmazione, la divisione per zero provoca errori immediati in fase di esecuzione, causando il crash delle applicazioni senza una degradazione graduale. Gli input dell'utente, i valori calcolati o i risultati provenienti dal database possono tutti generare divisori pari a zero in modo imprevisto. Una singola operazione di divisione non verificata può causare l'interruzione dei servizi di produzione quando dati relativi a casi limite innescano l'errore.
Perché è importante
Stabilità del sistema: La divisione per zero può causare il crash immediato dell'applicazione in linguaggi come Java, C e Python. In ambiente di produzione, ciò comporta la perdita di richieste, l'interruzione delle transazioni e l'indisponibilità del servizio. Anche in JavaScript, dove la divisione per zero restituisce Infinito oppure NaN, questi valori si ripercuotono sui calcoli causando risultati errati.
Integrità dei dati: quando si verificano errori di divisione durante l'elaborazione in batch o nelle pipeline di dati, è possibile che alcuni risultati vengano scritti prima del crash. Ciò comporta la presenza di dati in stati incoerenti, che richiedono un ripristino manuale e potrebbero danneggiare i sistemi a valle che dipendono dalla completezza dei dati.
Superficie di attacco: gli aggressori possono creare intenzionalmente input che generano divisori pari a zero per causare il crash dei servizi. Gli endpoint API che eseguono calcoli senza verificare la validità dei divisori diventano vettori di attacco denial-of-service. Una singola richiesta dannosa può mettere fuori uso l'intero servizio.
Esempi di codice
❌ Non conforme:
function calculateAverageOrderValue(totalRevenue, orderCount) {
return totalRevenue / orderCount;
}
function calculateConversionRate(conversions, visitors) {
return (conversions / visitors) * 100;
}
Perché è sbagliato: Entrambe le funzioni vanno in errore quando il divisore è zero. calcolaValoreMedioOrdine() non funziona quando numeroOrdini è 0, e calculateConversionRate() non funziona quando visitatori è 0. Questi scenari sono realistici: le nuove aziende possono non avere alcun ordine, le campagne possono non avere alcun visitatore.
✅ Conforme:
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;
}Perché è importante: i controlli espliciti impediscono il crash dovuto alla divisione per zero. Le funzioni restituiscono valori predefiniti appropriati (zero) quando la divisione non è possibile. L'applicazione continua a funzionare anche in presenza di input limite, garantendo stabilità e disponibilità.
Conclusione
Verificare sempre i divisori prima di eseguire operazioni di divisione. Restituire valori predefiniti appropriati, generare errori descrittivi o gestire il caso dello zero in base alla logica di business. Non dare mai per scontato che i divisori siano diversi da zero, specialmente quando si tratta di input dell'utente o dati esterni.

