El try catch es tan facil como su traducion al español
Dice Try (intenta)
catch (atrapa el error )
finally(al final has)
Bueno y lo debes usar segun si consideras que el programa va a ejecutar una operacion en la que podria no suceder si falta algo o algo no esta bien.
Te pongo un codigo de ejemplo para que te des una idea mas clara.
TRY
LOCAL lcSchema, loConfig, loMsg, loError, lcErr
lcErr = ""
lcSchema = "http://schemas.microsoft.com/cdo/configuration/"
loConfig = CREATEOBJECT("CDO.Configuration")
WITH loConfig.FIELDS
.ITEM(lcSchema + "smtpserver") = "smtp.gmail.com"
.ITEM(lcSchema + "smtpserverport") = 465 && ó 587
.ITEM(lcSchema + "sendusing") = 2
.ITEM(lcSchema + "smtpauthenticate") = .T.
.ITEM(lcSchema + "smtpusessl") = .T.
.ITEM(lcSchema + "sendusername") = "
[email protected]"
.ITEM(lcSchema + "sendpassword") = "micontrase;a de mi correo"
.UPDATE
ENDWITH
loMsg = CREATEOBJECT ("CDO.Message")
WITH loMsg
.Configuration = loConfig
.FROM = "micorreo que
[email protected]"
.TO = "mis destintarios"
.Subject = "Respaldo de Navojoa Lionas del " +ALLTRIM(DTOC(DATE()))
.TextBody = "Envio de respaldo de de informacion de sistemas Lionas "
.AddAttachment("C:\respaldo.rar")
.Send()
ENDWITH
CATCH TO loError
lcErr = [Error: ] + STR(loError.ERRORNO) + CHR(13) + ;
[Linea: ] + STR(loError.LINENO) + CHR(13) + ;
[Mensaje: ] + loError.MESSAGE
FINALLY
RELEASE loConfig, loMsg
STORE .NULL. TO loConfig, loMsg
IF EMPTY(lcErr)
MESSAGEBOX("El mensaje se envió con éxito", 64, "Aviso")
quit
ELSE
MESSAGEBOX(lcErr, 16 , "Error")
quit
ENDIF
ENDTRY
Fijate bien, en el try hago la operacion que podria darme un error, por ejemplo esto no funciona en windows 7 por que le falta el componente que utilizo el smtp para enviar correo, y el cath atrapa el error evitando que colapse la aplicacion y me indica el error y termina la aplicacion, si por el contrario la operacion sale bien en el finally me mnda el mensage de que todo ocurrio bien y me el mensage de que la operacion fue exitosa, el finally es opcional, y en el catch podria irse directo al mesge de error y despues del endtry tambien podria contener el mensaje de que la operacion fue exitosa. espero te quede mas claro.
Saludos.