Che cos'è un codice non raggiungibile?
Il codice non raggiungibile è un codice di programmazione che non può essere eseguito in nessun contesto. Esistono diversi motivi per cui ciò può accadere e molti linguaggi per computer non consentono l'esecuzione di un programma se una sezione di codice non è raggiungibile. I problemi generati dal codice non raggiungibile possono essere risolti rimuovendo la sezione problematica del codice o riscrivendo parte del codice per rendere nuovamente raggiungibile la sezione.
Quando si progetta un software, può essere relativamente semplice creare inavvertitamente codice non raggiungibile. Qualsiasi interruzione significativa nel flusso del programma ha il potenziale di causare una sezione di codice che è irraggiungibile. Ad esempio, la creazione accidentale di un ciclo infinito può rendere irraggiungibile tutto il codice che lo segue 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 tornare prima che venga eseguito tutto il suo codice. In questo caso, il codice dopo l'istruzione return sarebbe irraggiungibile.
Esistono due modi in cui è possibile generare codice non raggiungibile. In primo luogo, la gestione impropria delle strutture di controllo durante la scrittura di codice non elaborato può comportare sezioni di codice non raggiungibili. In secondo luogo, errori nelle strutture di controllo che non sono evidenti durante il processo di codifica, ma che vengono visualizzati quando viene eseguito un programma, possono anche causare codice non raggiungibile. Il primo tipo di errore ha vari nomi, incluso 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 non raggiungibile è spesso confuso con il codice morto, ma i due sono cose significativamente diverse. Il codice morto è un codice che esegue un determinato calcolo, ma non fa nulla con il risultato del calcolo. Questo non è lo stesso del codice non raggiungibile, che non viene mai eseguito. Sia il codice irraggiungibile che il codice 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 sia il codice morto possono di solito essere rilevati durante la codifica e prima di eseguire un programma.
Nonostante la sua definizione apparentemente terribile, il codice irraggiungibile è spesso relativamente facile da correggere. La presenza di codice non raggiungibile 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 tutto il processo di codifica, la probabilità di generare codice non raggiungibile è molto bassa.