Page 1 of 1

Capturar Error.

Posted: Sat Dec 17, 2011 5:57 pm
by omarelunico
Consulta.
El siguiente error de índice sale cuando está mal el índice o existe corrupción, lo que quisiera saber es si hay alguna manera de coger este error como se hace en java, para que no salga esa pantalla, lo que quiero es capturar el error y de esa manera indizar la tabla antes de que salga dicho mensaje.
En conclusión como determinar si hay error de índice, y en ese caso como saberlo antes de que salga esta ventana e indizarlo antes de que salga la ventana.

Image

Re: Capturar Error.

Posted: Sat Dec 17, 2011 6:06 pm
by Daniel Garcia-Gil
Hola

Usa TRY / CATCH / END

Code: Select all

try
   mi codigo
catch oError
   procesar el error
end

Re: Capturar Error.

Posted: Sat Dec 17, 2011 6:11 pm
by omarelunico
en fivewin como podría ser el CATCH?
El error ocurre en la siguiente linea
USE ( cDatabase ) NEW SHARED
como se podría capturar el error ahí?

Re: Capturar Error.

Posted: Sat Dec 17, 2011 6:40 pm
by Daniel Garcia-Gil
Hola

Code: Select all

try
  USE ( cDatabase ) NEW SHARED 
catch oError
   MsgAlert( "error abriendo la tabla" )
end

Re: Capturar Error.

Posted: Mon Dec 19, 2011 5:01 pm
by omarelunico
Gracias Daniel, pero no he podido hacerlo de la manera que me indicas, logré solucionarlo de otra manera, utilizando
el prg errsysw.prg incluyendolo dentro de mis prgs

ErrorBlock( {|e| MsgStop( ErrorMessage(e) + " from Errorsys, line:" + ;
Str( ProcLine( 1 ), 3 ) ), __quit() } )
IF UPPER(e:Description)="CORRUPTION DETECTED"
DBCLOSEALL()
If LEFT(RIGHT(e:FileName,12),8)$"tablaaindizar"
indizartabla()
Endif
Endif


Daniel, del otro modo que me indicas me sale error al compilar
try
USE ( cDatabase ) NEW SHARED
catch oError
MsgAlert( "error abriendo la tabla" )
end

Harbour Compiler Alpha build 46.2 (Flex)
Copyright 1999-2006, http://www.harbour-project.org/
Compiling 'wsicnet.prg' and generating preprocessed output to 'wsicnet.ppo'...
wsicnet.prg(92) Error E0030 Syntax error: "parse error at '<eol>'"
wsicnet.prg(94) Error E0030 Syntax error: "parse error at 'OERROR'"
wsicnet.prg(97) Error E0030 Syntax error: "parse error at '<eol>'"
wsicnet.prg(105) Error E0030 Syntax error: "parse error at 'ENDIF'"
wsicnet.prg(123) Error E0030 Syntax error: "parse error at 'ENDDO'"
wsicnet.prg(126) Error E0030 Syntax error: "parse error at 'ELSE'"
wsicnet.prg(129) Error E0030 Syntax error: "parse error at 'ENDIF'"

Re: Capturar Error.

Posted: Mon Dec 19, 2011 6:01 pm
by Antonio Linares
Omar,

En vez de tu solución usa BEGIN SEQUENCE:

http://www.ousob.com/ng/53guide/ngfc7b7.php