Che cos’è un codice irraggiungibile?

Il codice irraggiungibile è un codice di programmazione che non può essere eseguito in nessun contesto. Esistono diversi motivi per cui ciò potrebbe verificarsi e molti linguaggi di computer non consentono l’esecuzione di un programma se una sezione di codice non è raggiungibile. I problemi generati da codice irraggiungibile possono essere risolti rimuovendo la sezione di codice problematica o riscrivendo parte del codice per rendere nuovamente raggiungibile la sezione.

Quando si progetta un software, può essere relativamente facile creare inavvertitamente codice irraggiungibile. Qualsiasi interruzione significativa nel flusso del programma può causare una sezione di codice irraggiungibile. Ad esempio, la creazione accidentale di un ciclo infinito può rendere irraggiungibile tutto il codice che viene dopo di esso perché non ci sarebbe modo di uscire dal ciclo e continuare il programma. Un altro modo in cui ciò può accadere è se una funzione è codificata per restituire prima che tutto il suo codice venga eseguito. In questo caso, il codice dopo l’istruzione return sarebbe irraggiungibile.

Ci sono due modi in cui il codice irraggiungibile può essere generato. Innanzitutto, la gestione impropria delle strutture di controllo durante la scrittura di codice non elaborato può comportare sezioni di codice irraggiungibili. In secondo luogo, errori nelle strutture di controllo che non sono ovvi durante il processo di codifica, ma si manifestano durante l’esecuzione di un programma, possono anche causare codice irraggiungibile. Il primo tipo di errore ha una varietà di nomi, inclusi errore di codifica o errore di sintassi, e il secondo tipo di errore è un errore di runtime. Gli errori di codifica vengono generalmente rilevati da parser o compilatori, ma gli errori di runtime possono essere rilevati solo testando ed eseguendo il programma dopo il completamento.

Il codice irraggiungibile viene spesso confuso con il codice morto, ma i due sono cose significativamente diverse. Il codice morto è un codice che esegue un particolare calcolo, ma poi non fa nulla con il risultato del calcolo. Questo non è lo stesso del codice irraggiungibile, che non viene mai eseguito. Sia il codice irraggiungibile che quello morto possono spesso essere rimossi da un programma senza danno, oppure possono essere integrati nuovamente nel programma prestando particolare attenzione al flusso di controllo del programma. Inoltre, sia il codice irraggiungibile che il codice morto possono essere generalmente rilevati durante la codifica e prima dell’esecuzione di un programma.

Nonostante la sua definizione apparentemente terribile, il codice irraggiungibile è spesso relativamente facile da risolvere. La presenza di codice irraggiungibile indica sempre un problema di flusso di controllo, quindi un’attenta analisi del flusso di controllo di un programma di solito identificherà il codice offensivo in breve tempo. Se il flusso di controllo di un programma viene attentamente monitorato durante il processo di codifica, la probabilità di generare codice irraggiungibile è molto bassa.