Spesso quando scrivo una funzione voglio assicurarmi che gli input siano validi al fine di rilevare tali errori il più presto possibile (credo che questi siano chiamati precondizioni). Quando una condizione preliminare fallisce, ho sempre lanciato un'eccezione. Ma sto iniziando a dubitare che questa sia la migliore pratica e, in caso contrario, affermazioni sarebbero più appropriate.
Quindi quando dovrei fare quale: quando è appropriato usare un'asserzione e quando è appropriato lanciare un'eccezione?