Page 1 of 1

Errorsys

Posted: Thu Apr 30, 2015 10:09 am
by Baxajaun
Buenos días,

se puede evitar la inclusión de errorsys en el ejecutable ?

Muchas gracias.

Saludos

Re: Errorsys

Posted: Thu Apr 30, 2015 10:20 am
by acuellar
Baxajaun

Yo no lo uso.

Saludos,

Adhemar

Re: Errorsys

Posted: Thu Apr 30, 2015 10:32 am
by Baxajaun
Hola,

me refiero a que cuando el programa de error en ejcución no genere el fichero de error ni muestre el error por pantalla.

Muchas gracias.

Saludos,

Re: Errorsys

Posted: Thu Apr 30, 2015 10:50 am
by hmpaquito
Tienes que redirigir los errores. Creo que se hace con la funcion ErrorBlock().

Re: Errorsys

Posted: Thu Apr 30, 2015 7:00 pm
by gsabattino
Ilustrisimo Baxajaun...

por medio de la función ErrorBlock puedes deshabilitar el manejador de errores, o redirigirlo a uno propio...

Para deshabilitarlo sería algo así como esto:

Code: Select all

bDefErrHandler:=ErrorBlock( { || NIL } )
y creo que esto también podría funcionar:

Code: Select all

bDefErrHandler:=ErrorBlock( NIL )
o si te interesa redirigirlo a un manejador de errores propio seria algo así como esto

Code: Select all

bDefErrHandler:=ErrorBlock( { | oError | TuManejadorDeError( oError ) } )
bDefErrHandler te guarda la llamada al manejador de errores que estaba antes del cambio de manera que puedas luego restaurarlo de la siguiente manera:

Code: Select all

// Punto donde necesitas que se active tu rutina de manejo de errores en caso de un error
bDefErrHandler:=ErrorBlock( { | oError | TuManejadorDeError( oError ) } )
...
...
tu_codigo...
...
...
// Punto donde restauras la llamada al manejador de errores por defecto de [x]Harbour
ErrorBlock( bDefErrHandler )
...
 
Aca parte de la documentación de Clipper respecto al tema...
Syntax

ERRORBLOCK([<bErrorHandler>]) --> bCurrentErrorHandler

Arguments

<bErrorHandler> is the code block to execute whenever a runtime
error occurs. When evaluated, the <bErrorHandler> is passed an error
object as an argument by the system.

Returns

ERRORBLOCK() returns the current error handling code block. If no error
handling block has been posted since the program was invoked,
ERRORBLOCK() returns the default error handling block.
Ahora... como criterio personal, no creo que sea buena idea eliminar el manejador de errores... de todas formas, como en gusto y colores no existen leyes ni paradigmas, creo que con lo que te he comentado aca deberias poder resolver tu inquietud...

yo, en lo personal, lo que hice fue tomar el archivo source/function/ErrSysW.prg y retocarlo un poco para adaptarlo a mis requerimiento particulares...

Espero te sirva el tip...

Giancarlo Sabattino
Valencia, Venezuela