ASP permette una comoda gestione degli errori attraverso il comando On Error Resume Next. Il suo utilizzo è molto semplice: è sufficiente impostare la dichiarazione all’inizio di una qualsiasi pagina ASP che, per eventi vari, potrebbe incorrere in un errore di run-time
<%@LANGUAGE = VBScript%>
<%
On Error Resume Next
%>
<html>
...
In questo modo l’errore viene intercettato e scavalcato e la pagina continuerà la sua esecuzione senza eseguire lo script che ha generato errore e gli script collegati. Tuttavia da solo non è sufficiente a garantire una corretta gestione degli errori e nemmeno una soluzione alternativa al caso di errore.
Esiste l’oggetto Err che dispone di una serie di proprietà per gestire determinate caratteristiche dell’errore e determinarne il controllo. Segue un elenco delle principali proprietà dell’oggetto
- Number – Recupera il numero dell’errore associatogli dal Web Server; se uguale a zero (0) vuol dire che non ci sono errori.
- Description – Fornisce una breve ma utile descrizione del tipo di errore verificatosi.
- Source – Identifica la porzione di codice che ha generato l’errore.
Facciamo un esempio
<%@LANGUAGE = VBScript%>
<%
On Error Resume Next
%>
<html>
<body>
<%
Dim a, b, ris
a = 10
b = 0
ris = a / b
If Err.Number = 0 Then
Response.Write "Risultato: " & ris
Else
With Response
.Write Err.Number & "<br>"
.Write Err.Description & "<br>"
.Write Err.Source
End With
End If
%>
</body>
</html>
Trattandosi di una divisione per zero, operazione aritmeticamente scorretta, lo script andrà in errore e, dato il codice utilizzato, restituirà a video il seguente messaggio
11 Divisione per zero Errore di run-time di Microsoft VBScript
Tuttavia il comando On Error Resume Next e l’oggetto Err non sono propedeutici o legati tra loro da particolari vincoli e possono operare insieme o singolarmente senza creare problemi o migliorie l’uno all’altro.
