by R.F. » Fri Feb 16, 2007 10:47 pm
No es tan facil, continuar o no la ejecucion de un programa depende del tipo de error que se haya generado, algunos errores pueden "reintentar" pero otros requieren que la aplicacion se aborte.
Clipper posee un "objeto Error" y (x)Harbour hereda dicho comportamiento, funciona asi:
Existe una funcion "global" llamada ErrorBlock(), que recibe como parámetro un bloque de código el cual a su vez puede recibe como parametro el objeto error, el bloque de codigo lleva una funcion a la cual se va a llamar cuando el programa cause un error:
ErrorBlock({|oError| MiControlDeErrores(oError)})
Tan simple como eso, cuando tu programa cause un error, se llama de manera automatica a la funcion MiControlDeErrores() y ahi, tu puedes escribir lo que tu quieras que pase con los errores.
Lo mas facil es hacer:
Funcion MiControlDeErrores(oError)
QUIT
RETURN
Asi el programa directamente se sale sin hacer mas preguntas.
FiveWin tiene el Errsysw.prg que contiene la función que controla los errores en tiempo de ejecucion de FiveWin, esta en \source\function. Esta funcion "analiza" el objeto error y en base a eso dibuja el dialogo muestra el listado de errores y dependiendo del estado del error muestra los botones correspondientes, en algunos casos, dependiendo de la serveridad del error sera el "Default", en otras el "Retry" y en otras directamente el "Quit", pero todo esto vienen de analizar las datas del objeto error.
Para mas informacion sobre las propiedades del objeto ERROR las puedes encontrar en el manual de Clipper.
Saludos
R.F.