Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH

Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH

Postby fespinoza » Tue Apr 24, 2012 3: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
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Re: Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH

Postby carlos vargas » Tue Apr 24, 2012 5: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: Select all  Expand view


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: Select all  Expand view

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: Select all  Expand view

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)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Cuando usar TRY .. CATCH .. END y WITH OBJECT .. END WITH

Postby fespinoza » Tue Apr 24, 2012 7:17 pm

Gracias. Muy clara la explicación.
Saludos

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 93 guests