Ho una domanda di design semplice (?).C: errore di lancio sul controllo dei parametri o lasciare che colpisca il ventilatore?
Sto scrivendo un programma semplice, che ha un paio di funzioni simili a queste.
float foo (float* m,size_t n){
float result;
//do some calculations, for example a sum
return result/n;
}
Ho un paio di domande su questo, senza alcuna intenzione di ri aprendo qualche guerra santa.
Devo aggiungere un controllo di integrità sul n
? In caso affermativo, come dovrei informare il chiamante?
Tornando -1
sembra strano su galleggianti;
float foo(float *m,size_t n){
if (n == 0) return -1f
...
}
mia altra opzione è un parametro out
float foo(float *m,size_t n, int *error){
if (n==0){
*error = 1;
return 0f;
}
...
}
aggiornamento
Questo è tipo di un programma giocattolo, solo cercando di praticare alcune cose. La domanda supera questo fatto. Forse dovrei riformulare su "come gestire gli errori senza eccezioni (OOP)".
Anche considerando il test n
prima di effettuare la chiamata, ma non mi piace tanto.
Qualche idea? Grazie in anticipo.
Potrebbe essere utile ascoltare ulteriori informazioni sull'ambiente delle funzioni. Esistono in un corpo di codice con pratiche di verifica degli errori o in cui il codice di terze parti ha determinate aspettative? È un progetto giocattolo autonomo? – TSomKes
@TsomKes ha aggiornato la mia domanda. – Tom