Molte persone considerano le eccezioni un problema perché creano percorsi invisibili attraverso il codice. Ad esempio in questo frammento:
function writeToFile(text, filename):
filehandle = open(filename)
foreach line in text:
filehandle.write(line)
filehandle.close()
Il metodo write
potrebbe generare un'eccezione. In tal caso, la funzione termina prematuramente e il filehandle non viene chiuso. Scrivere un codice di sicurezza è difficile.
D'altra parte l'aggiunta di una gestione esplicita degli errori come in C Cluster aumenta considerevolmente il codice. (Questa sembra essere l'opzione "altro" se non ti piacciono le eccezioni.)
function writeToFile(text, filename):
filehandle = open(filename)
if nullptr == filehandle:
return
foreach line in text:
if(!filehandle.write(line)):
filehandle.close()
return
filehandle.close()
Questo è solo un semplice esempio. Ho appena scritto il codice per fare un po 'di registrazione e tra il concetto astratto di "Just dump data in a file!" e la mia implementazione è una differenza di circa 200 linee.
Quindi cosa fanno le persone per mantenere leggibile il loro codice nonostante tutti quei casi angolari che devono essere controllati e gestiti?
Dobbiamo ricorrere alla programmazione alfabetica? :)