Spesso quando scrivo una funzione voglio assicurarmi che gli input ad esso siano validi al fine di rilevare tali errori il prima possibile (credo che questi siano chiamati precondizioni). Quando una precondizione fallisce, ho sempre lanciato un'eccezione. Ma sto cominciando a dubitare che questa sia la migliore pratica e se non le affermazioni sarebbero più appropriate.
Quindi quando dovrei fare quale: quando è opportuno usare un'asserzione e quando è opportuno lanciare un'eccezione?