Cuando ejecutamos una aplicación, se pueden producir errores, por ejemplo, intentando abrir un archivo que no existe. Este tipo de error nos producen una salida abrupta de nuestra aplicación.
Podemos tratar ese tipo de errores, para que nuestra aplicación pueda por ejemplo, mostrar un mensaje de error e incluso poder seguir ejecutando el programa, como si nada hubiera ocurrido.
Estas son las ordenes que se usan para gestionar los errores:
CATCH |
Captura
un error en una función
|
DEBUG |
Muestra
en consola un mensaje de depuracion
|
ERROR |
Indica si
ocurrió un error, o muestra un mensaje de error
|
Error |
La clase
estatica Error, por ejemplo, nos puede indicar el número de error
|
FINALLY |
Ejecuta
un bloque de codigo en una funcion, incluso si hubo un error
|
TRY |
Intenta
ejecutar una orden, sin disparar un error.
|
CATCH | Captura un error en una función |
DEBUG | Muestra en consola un mensaje de depuracion |
ERROR | Indica si ocurrió un error, o muestra un mensaje de error |
Error | La clase estatica Error, por ejemplo, nos puede indicar el número de error |
FINALLY | Ejecuta un bloque de codigo en una funcion, incluso si hubo un error |
TRY | Intenta ejecutar una orden, sin disparar un error. |
Application_Error | Rutina de tratamiento de errores global |
Aqui teneis un ejemplo:
' Gambas
module file
Public
Sub
Main()
EscribeContenidoFichero("/home/uno/hola.txt")
End
'
Función que Escribe el contenido de un archivo en la pantalla
Sub
EscribeContenidoFichero(FileName As
String)
Dim
numero1 As
Integer
Dim
numero2 As
Integer
Dim
texto1 As
String
Dim
texto2 As
String
Dim
hFile As
File
Dim
sLig As
String
'intentamos abrir el archivo, si sale mal, nos quedamos con el numero y texto del error...
Try
hfile =
Open
FileName For
Read
If
Error
Then
numero1 =
Error.Code
'guardamos
el numero de error
texto1 =
Error.text
'guardamos
el texto del error
Endif
While
Not
Eof(hFile)
Line
Input
#hFile, sLig
Print
sLig
Wend
Finally
' siempre
se ejecuta aunque se produzca el error
'intento
cerrar el archivo
Try
Close
#hFile
If
Error
Then
numero2 =
Error.Code
'guardamos
el numero de error
texto2 =
Error.Text
'guardamos
el texto del error
Endif
Catch
' se
ejecuta solo si se ha producido un error
' mostramos los errores producidos...
Print
"No
he podido mostrar el archivo: "; FileName
Print
"Numero
del error:"; numero1; "
"; texto1
Print
"Numero
del error:"; numero2; "
"; texto2
End
Si el archivo "/home/uno/hola.txt" existe nos mostraría su contenido, pero si no existe o tiene algun problema al abrirlo o al cerrarlo, se ejecutará las ordenes contenidas a partir de Catch.
Además al añadir Try, y el blogue de ordenes If error then ... , vamos a capturar que error se ha producido, para por ejemplo, mostrar que ha pasado e informar al usuario del error.
Descarga del codigo fuente: Codigo Fuente
Para mas información:
http://gambaswiki.org/wiki/cat/error
http://gambaswiki.org/wiki/comp/gb/error
No hay comentarios:
Publicar un comentario