Ultimamente ho faticato a capire qual è la giusta quantità di controllo e quali sono i metodi corretti.
Ho alcune domande a riguardo:
Qual è il modo corretto per verificare la presenza di errori (input errati, stati non validi, ecc.)? È meglio controllare esplicitamente gli errori o utilizzare funzioni come assert che possono essere ottimizzate dal tuo codice finale? Mi sento di controllare esplicitamente un programma con un sacco di codice in più che non dovrebbe essere eseguito nella maggior parte delle situazioni - e per non parlare della maggior parte degli errori si finisce con un fallimento di interruzione / uscita. Perché ingombrare una funzione con controlli espliciti solo per abortire? Ho cercato affermazioni rispetto al controllo esplicito degli errori e ho trovato poco per spiegare veramente quando fare entrambi.
La maggior parte dice "usa asserti per verificare gli errori logici e usa controlli espliciti per verificare altri errori". Questo non sembra farci molto lontano però. Diremmo che questo è fattibile:
Malloc returning null, check explictly
API user inserting odd input for functions, use asserts
Questo mi renderebbe migliore nel controllo degli errori? Cos'altro posso fare? Voglio davvero migliorare e scrivere meglio, codice 'professionale'.