FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH
Posts: 188
Joined: Wed Feb 01, 2006 06:59 PM
Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH
Posted: Tue Apr 24, 2012 03:52 PM

Estimados fivewiners

Nunca he usado los comandos "TRY .. CATCH .. END" y "WITH OBJECT .. END WITH" (entiendo que son propios de Harbour y xHarbour). Por eso quisiera conocer cual es el uso recomendado de los mismos y algunos ejemplos, ideas de cuando usarlos.

Saludos

Fernando Espinoza

Saludos



Fernando Espinoza
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH
Posted: Tue Apr 24, 2012 05:02 PM
la sentencia try... catch... end es una sentencia para manejo de errores, es una forma facil de implementarlos
de ocurrir un error en el bloque de codigo contenido entre try y catch, probocara que la secuencia del programa salte hacia el catch el cual interceptara el error y si definimos una variable en catch esa variable obtendra el objeto error, con el cual podriamos hacer una manejo adecuado.
es como una version mejorada del begin secuence y end secuence
Code (fw): Select all Collapse
try
   use tabla01  //esta tabla no existe, por tanto se crea un error, y se salta hacia catch oError
   ?tabla01->cambo    //este codigo no es ejecutado, ya que la secuencia salto hacia catch oError
catch oError    //aca se recibe un objeto error probocado en bloque try
   alert( oError:descripcion )  //aca se muestra la descripcion del error, pero esta parte puede ser usado para manejar el error en cuestion.
finally
   ?"me muestros si hay error o no"   //esta instruccion siempre se ejecutara luego del try o del catch
end

aca hay algo importante y es que oError es uan variable que debe estar definida previamente, por ejemplo LOCAL oError

en el caso de with object ... end
es un bloque de codigo que permite manipular los metodos y var de un objeto creado
de una forma mas eficiente

normal
Code (fw): Select all Collapse
oMyBox := TBox():New()
oMyBox:nTop := 0
oMyBox:nLeft := 0
oMyBox:nBottom := 24
oMyBox:nRight := 80
oMyBox:cColor := "W+/B"
IF oMyBox:Mostrar()
    Inkey(1)
    oMyBox:Ocultar()
ENDIF


con with object
Code (fw): Select all Collapse
WITH OBJECT ( oMyBox := TBox:New() )
   :nTop := 0
   :nLeft := 0
   :nBottom := 24
   :nRight := 80
   :cColor := "W+/B"
   IF :Mostrar()
       Inkey(0)
       :Ocultar()
   ENDIF
END


hay mas claridad en el codigo y menos codigo.
ademas creo que indicaban que el caso del with object hay alguna mejora en la velocidad de acceso a los miembros del objeto.

salu2
carlos vargas
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 188
Joined: Wed Feb 01, 2006 06:59 PM
Re: Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH
Posted: Tue Apr 24, 2012 07:17 PM

Gracias. Muy clara la explicación.

Saludos



Fernando Espinoza

Continue the discussion