Cyclic Include

Cyclic Include Cyclic Include

Inserito il 30/06/2005 - letto 1831 volte

Messaggio di errore in Inglese

Active Server Pages error 'ASP 0135'
Cyclic Include
/folder/file-name.asp, line 10
The file '/folder/file-name.asp' is included by itself (perhaps indirectly). Please check include files for other Include statements.

Da cosa dipende e come risolvere il problema...

Questo errore è abbastanza raro ma merita ugualmente di essere citato.

Il messaggio segnala che si sta cercando di eseguire una pagina che presenta una situazione di inclusione ciclica (o ricorsiva).
Detto in parole più semplice, da qualche parte nel codice state cercando di includere una pagina in sé stessa e questo provocherebbe un ciclo infinito che se eseguito avrebbe effetti difficilmente prevedibili.

L'errore non è così frequente poiché spesso il limitato numero di inclusioni permette di riconoscere immediatamente una situazione anomala.
Tuttavia, in un programma particolarmente complesso, la cosa potrebbe non essere immediata.

A tal proposito è buona abitudine definire degli standard a cui attenersi in fase di programmazione per evitare di ricadere in questo errore.
Ecco alcuni esempi

  • Nominare in modo riconoscibile ogni include in modo da differenziarlo dalle normali pagine.
    Un'abitudine consolidata consiste nell'inserire il prefisso inc_ nel nome del file, oppure di farlo terminare con. inc seguito dall'estensione.
    Esempio: inc_pagina. asp ; pagina. inc. asp
  • Definire un elenco di pagine di norma includenti ed uno di pagine normalmente incluse.
    Ad esempio, se state sviluppando una applicazione con delle funzioni di libreria incluse in file, separate bene le procedure per argomento e definire delle regole secondo le quali un file di libreria non può mai includere un altro file di libreria ma solo una pagina in esecuzione può includere file di libreria.
    Esempio: export. inc. asp ; print. inc. asp sono i vostri file di libreria.
    message_add. asp ; message_delete. asp sono i file di esecuzione. Definire che export. inc. asp e print. inc. asp possono solo essere inclusi e non includere, mentre al contrario un file che non presenta l'estensione. inc non potrà mai essere incluso.
  • Non inserite inclusioni all'interno del codice ma fate precedere tutte le inclusioni all'esecuzione della pagina. Questo consentirà di individuare agevolmente eventuali file non corretti e ridurre le possibilità di errore.
    Se per un qualche motivo un file deve essere incluso per produrre output diretto, inserite l'output in una funzione, includete il file ad inizio pagina con gli altri e poi nella posizione voluta richiamate la funzione.

Alla base della programmazione, indipendentemente dal linguaggio, è molto importante avere un metodo di sviluppo e delle convenzioni, per poter rendere il codice più chiaro, standard ed usabile.