CATCH
SUB Function ( ... )
...
CATCH
...
END
Questa istruzione indica l'inizio di una gestione degli errori in qualche parte all'interno di una procedura.
La parte CATCH viene eseguita quando viene generato un'errore fra l'inizio della procedura eseguita a la sua fine. Questo errore, può essere generato dalla stessa procedura, oppure da un'altra chiamata dal suo interno a condizione che la procedura chiamata non abbia a sua volta un CATCH al suo interno che essendo più profondo avrebbe la precedenza. Infatti più è profondo CATCH di eventuali procedure chiamate, più priorità ha.
Se viene generato un errore durante l'esecuzione di CATCH, esso di norma si propaga. La parte di cattura degli errori non protegge da tutto!
Se c'è una parte
FINALLY nella procedura, allora essa deve precedere CATCH. Fare riferimento a
FINALLY per maggiori dettagli.
Esempio
' Stampa un file sullo schermo.
SUB PrintFile(FileName AS STRING)
DIM hFile AS File
DIM sLig AS STRING
OPEN FileName FOR READ AS #hFile
WHILE NOT EOF(hFile)
LINE INPUT #hFile, sLig
PRINT sLig
WEND
FINALLY ' Sempre eseguita anche se viene generato un'errore.
CLOSE #hFile
CATCH ' Eseguita solo in caso di errore.
PRINT "Impossibile stampare il file "; FileName
END
Vedi anche