Dire che ho una funzione che accetta alcuni argomenti che ricadono in una serie di vincoli, ad es. uno di loro deve essere un numero intero, un altro deve essere una stringa di lunghezza di almeno 10, eccetera. In generale, è responsabilità dello sceneggiatore di funzioni (cioè mio) avere un gruppo di assert
s o qualsiasi altra cosa per far rispettare queste precondizioni e generare errori se qualcuno vi viene violato? O dovrei semplicemente lasciare che la funzione proceda comunque e fare in modo che il chiamante si occupi degli errori o degli strani output che ottengono da esso? Il mio ragionamento è che da un lato, è più semplice in termini di debugging se viene immediatamente generato un errore quando viene violata una condizione preliminare, ma d'altra parte, potrebbe essere più semplice per il chiamante leggere la documentazione della funzione piuttosto che me imbottendolo con un intero carico di assert
se if
-statiments.
Come una domanda a parte, se sto scrivendo funzioni che userò solo io, la risposta è la stessa, o faccio solo ciò che mi sembra più comodo?