Esaminiamo ora un altro degli Oggetti intrinseci di ASP, l'Oggetto
ASPError.
Il suo compito è quello di spiegare e segnalarci meglio un errore
ottenuto durante l'esecuzione dello script ASP processato.
Non utilizzandolo infatti, in presenza di un errore viene mostrata
tipicamente la pagina bianca con la scritta "Impossibile
visualizzare la pagina" con di seguito una serie di informazioni, ma
non sempre è molto chiaro capire l'errore che è stato commesso.
Utilizzando questo Oggetto, se durante l'esecuzione dello script ASP
viene a verificarsi un errore, lo stesso script verrà interrotto e
verrà richiamato il codice che abbiamo predisposto per spiegare
meglio l'errore.
Con la riga: On Error Resume Next
attivo “l’esclusione” dell’errore.
L'aspError, come dice il nome stesso, è in grado però di mostrare e
gestire solo gli errori riguardanti il codice Active Server Page. Se
ho quindi altri tipi di errori non è utile. E’ comunque una cosa
molto importante soprattutto se faccio delle pagine molto
complicate, in cui quindi la possibilità di errore è elevata.
L'Oggetto ASPError è ritornato dal metodo
Server.getLastError
e possiede soltanto proprietà di sola lettura.
Esaminiamo ora la sintassi:
ASPError.Proprietà
Il modello è invece:
Properties
AspCode
Ritorna il codice di errore generato da IIS.
Number
Ritorna il codice COM standard di errore.
Source
Ritorna l'attuale codice sorgente, se disponibile, della linea che
ha causato l'errore.
Category
Indica se la srogente dell'errore è interno ad ASP, nel linguaggio
di scripting o un'oggetto.
File
Indica il nome del file ASP che era processato al momento dll'errore.
Line
Indica il numero della linea in cui è avvenuto l'errore.
Column
Indica il numero della colonna in cui è avvenuto l'errore.
Description
Ritorna una breve descrizione dell'errore.
AspDescription
Ritorna una descrizione più dettagliata dell'errore se è un errore
correlato ad ASP.
Vediamo ora un semplice esempio di utilizzo per la Connessione ad un
database:
On Error Resume Next
.....
Set DBConn=
Server.CreateObject("ADODB.Connection")
'Questo genera un errore perchè il
percorso è sbagliato
StrConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data
Source = c:\Database.mdb;"
DBConn.Open strConn
....
IF
DBConn.Errors.Count>0 THEN
Response.write "<HR>Debug:<BR>"
Response.write "Impossibile aprire il database.<BR>"
Response.write "Ecco gli errori generati: <ol>"
FOR i = 0 TO
DBConn.Errors.Count -1
ErrNum = DBConn.Errors(i).Number
IF ErrNum
<> 0 THEN
Response.write "<li>ADO Error: # " & ErrNum
Response.End
END IF
NEXT
Response.Write "</ol>"
END IF
Se non si sono verificati errori il contatore è nullo e la proprietà
Number anche.
Se invece si sono verificati errori allora vengono mostrati su
schermo con una breve descrizione
Note Quando IIS incontra un errore in fase di compilazione o di
esecuzione di un file ASP genera un errore custom 500;100.
Per default tutti i siti web trasferiscono il processamento
dell'errore 500;100 al file default.asp.
Dopo la generazione di un errore 500;100 inoltre IIS crea un'istanza
dell'Oggetto ASPError che descrive la condizione dell'errore