Segun el siguiente ejemplo que tome del Forum para capturar el Error.
LOCAL oError
TRY //Esta es la linea 895
//operacion que puede fallar
CATCH oError // linea 998
//mensaje de error
Alert("Error: " + oError:description )
FINALLY
//mensaje indicando que todo esta bien
Alert("La operacion se realizo corrctamente")
END //linea 901
Pregunta , este EJemplo Funciona con Harbour estoy trabajando con FWH 2.7 y Harbour build 45
Me genera este error
Compilado y Enlazado de: [C:\proy_harb\plastwin.Exe]
Ejecución No. 1
Ejecutada a las: 08:00:07
============================================================
Harbour Compiler Alpha build 45.0 (Flex)
Copyright 1999-2005, http://www.harbour-project.org/
Compiling 'C:\proy_harb\PRG\pxp0001.prg'...
C:\proy_harb\PRG\pxp0001.prg(885) Error E0030 Syntax error: "parse error at '<eol>'"
C:\proy_harb\PRG\pxp0001.prg(895) Error E0030 Syntax error: "parse error at 'OERROR'"
C:\proy_harb\PRG\pxp0001.prg(898) Error E0030 Syntax error: "parse error at '<eol>'"
C:\proy_harb\PRG\pxp0001.prg(901) Error E0030 Syntax error: "parse error at '<eol>'"
4 errors
No code generated
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
** error 1 ** deleting C:\proy_harb\OBJ\pxp0001.hrb
Ha habido ERRORES al intentar Generar la Aplicacion
============================================================
VERCE v4.3 -> Ver Resultados de Compilación y Enlazado v4.3
Juan Carlos Salinas Ojeda
jcso@hotmail.com, jcso@esm.com.mx
Minatitlán, Veracruz. MEXICO
Y Solo Veracruz es bello !!!
FiveWin for Harbour!!
Capturar Error Para Evitar que se caiga el sistema
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
En Harbour puedes usar TRY ... CATCH incluyendo estos defines al comienzo del PRG:
Tienes que delarar una variable bError
Code: Select all
#xcommand TRY => bError := errorBlock( {|oErr| break( oErr ) } ) ;;
BEGIN SEQUENCE
#xcommand CATCH [<!oErr!>] => errorBlock( bError ) ;;
RECOVER [USING <oErr>] <-oErr-> ;;
errorBlock( bError )
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Gracias Antonio por aclarar la Duda.Antonio Linares wrote:En Harbour puedes usar TRY ... CATCH incluyendo estos defines al comienzo del PRG:Tienes que delarar una variable bErrorCode: Select all
#xcommand TRY => bError := errorBlock( {|oErr| break( oErr ) } ) ;; BEGIN SEQUENCE #xcommand CATCH [<!oErr!>] => errorBlock( bError ) ;; RECOVER [USING <oErr>] <-oErr-> ;; errorBlock( bError )
Defini lo que Usted me dijo pero Ahora genera el Error de los
FINALLY y el END Como se definen estos parametros.
***
Lo Implemente como se Hace lo APlique en clipper y me Funciono
[/code]
BULTIMOMANEJADOR := ErrorBlock( { | oError | MIMANEJADOR(oError, .t. ) } )
BEGIN SEQUENCE
COHELP := Prog2
mtpapel:="1";mncopias:=1;MWinDos="D"
select b_loco
Eval(aPrim2[1, 2])
RECOVER USING OBJLOCAL
? "Error No Identificado ->"
CLOSE DATABASES
SET DEVICE TO SCREEN
END SEQUENCE
ERRORBLOCK(bUltimoManejador)
// op_xod := op_mod
COHELP := "menu"
// ErrorBlock( objErr )
RETURN (.t.)
FUNCTION MIMANEJADOR(objErr,LMANLOCAL)
IF LMANLOCAL
? "Error *** ->", ltrim( str( objErr:gencode ) ), objErr:description + ":", objErr:operation,":"+ErrorMessage(objErr)
BREAK objErr
ENDIF
RETURN NIL
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Aqui tienes un ejemplo usado en el código del ADORDD:
Code: Select all
TRY
oConnection:Execute( "CREATE TABLE [" + cTableName + "] (" + aWAData[ WA_SQLSTRUCT ] + ")" )
CATCH
oError := ErrorNew()
oError:GenCode := EG_CREATE
oError:SubCode := 1004
oError:Description := HB_LANGERRMSG( EG_CREATE ) + " (" + ;
HB_LANGERRMSG( EG_UNSUPPORTED ) + ")"
oError:FileName := aOpenInfo[ UR_OI_NAME ]
oError:CanDefault := .T.
UR_SUPER_ERROR( nWA, oError )
END
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Antonio Linares wrote:Aqui tienes un ejemplo usado en el código del ADORDD:Code: Select all
TRY oConnection:Execute( "CREATE TABLE [" + cTableName + "] (" + aWAData[ WA_SQLSTRUCT ] + ")" ) CATCH oError := ErrorNew() oError:GenCode := EG_CREATE oError:SubCode := 1004 oError:Description := HB_LANGERRMSG( EG_CREATE ) + " (" + ; HB_LANGERRMSG( EG_UNSUPPORTED ) + ")" oError:FileName := aOpenInfo[ UR_OI_NAME ] oError:CanDefault := .T. UR_SUPER_ERROR( nWA, oError ) END Gracias Antonio