Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Usar O No Try?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Usar O No Try? 
 
buenas, no quiero que ningún tanteador se cuelgue o de error al hacer tareas de red y esto lo puedo hacer por medio de Try, esto me conviene o no? osea poner a todas las operación de red de escritura y lectura un Try delante.

la cuestión es o mi temor es, supongamos que se esta jugando un grupo y se va por la mitad del partido y por una razón x hay un error en las operaciones de red y el tanteador da error y el programa se cierra o se cuelga y se pierden los datos del mismo, por eso mi consulta.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Usar O No Try? 
 
V3ctor:

Citar:
....y esto lo puedo hacer por medio de Try,


Lo que debes hacer es capturar ese error, analizarlo y tratarlo.

En el caso de que sea un error momentaneo, tipo "fallo de las operaciones de red" , pues lo que haces es saltarlo.

Pero si ocultas los errores, puede que nunca sepas porque no funciona tu programa, y lo que es peor, puedes pensar que funciona correctamente, cuando no lo hace.


¿como tratar un error?
Despues de un try, por un if error then .... y mirar las propiedades del error, y según el error, hacer una cosa u otra (mensajes de error en pantalla hacer que lo vuelva a intentar)

Por ejemplo:

Imagina que tienes una función  que se encarga de hacer copias de seguridad de tus datos.
Esta funcion devuelve TRUE si todo ha ido bien, o FALSE se falla al hacer la copia de seguridad.
Lo primero que hace el programa es borrar la antigua copia de seguridad, que es un archivo de nombre "archivo.bak",  y siempre la tienes que borrar para que solo se añadan los datos actuales.

kill archivo.bak


Con esta orden, gambas borra un archivo... ¿que pasa si no existe el archivo? gambas genera un error y sale del programa (lo que tu no quieres)

Que pasa si pongo:
Try kill archivo

Lo intenta borrar, y si hay fallo sigue ejecutando el programa....  pero se te puede presentar un problema mayor, imagina que realmente no se ha borrado y añades información al archivo.... resultas que tienes el antiguo archivo con datos antiguos más los datos nuevos... y tu crees que solo tienes los datos ultimos añadidos....tienes otro problema mayor (no esperas tener un archivo con tantos datos) y encima no sabes por qué pasa eso y tu copia de seguridad no esta bien hecha.

¿cual es la forma de hacerlo?
try kill archivo
if error then
'aqui trato el error, veo que numero es, y averiguo una forma de solucionarlo, o salir de la subrutina.
'puedo presentar un mensaje en pantalla
'y retorno diciendo que la operación a fallado.
return False 'retorno un boolean FALSE para indicar que la operacion ha fallado, el programa puede intentar hacer otra vez la copia de seguridad o lo que se estimes oportuno.
endif
 

De esta forma estamos "tratando" el error y dandole una solución si se produce.

Esto  mismo lo hablamos hace mucho tiempo, he hice un articulo en el curso de gambas:
http://cursogambas.blogspot.com.es/...uso-de-try.html

Leetelo, porque alli comento más cosas.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Usar O No Try? 
 
jsbsan escribió: [Ver mensaje]
Lo primero que hace el programa es borrar la antigua copia de seguridad, que es un archivo de nombre "archivo.bak",


Aunque me salgo un poco del tema, no me parece buena estrategia la que comentas en el ejemplo  

Si primero borras la copia de seguridad y luego falla la creación de la nueva, te quedas sin respaldo. Hay otras formas de excluir de la copia la propia copia de seguridad mucho más seguras, te lo digo por experiencia.

Volviendo al tema de la gestión de los errores, coincido con jsbsan. De todos modos, es bueno leer algo de información al respecto en la ayuda oficial: http://gambaswiki.org/wiki/cat/error?l=es

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Usar O No Try? 
 
jguardon:

Citar:

 no me parece buena estrategia la que comentas en el ejemplo  
Si primero borras la copia de seguridad y luego falla la creación de la nueva, te quedas sin respaldo.

Estoy deacuerdo contigo, no es buena estrategia. Pero es un ejemplo para que V3ctor entendiera que problemas tiene poner Try a "diestro y siniestro".

Como no ha contestado   , supongo que ya lo ha entendido.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Usar O No Try? 
 
jsbsan escribió: [Ver mensaje]
Como no ha contestado   , supongo que ya lo ha entendido.


si entiendo que hay que tratar los errores,bien lo hago, pero.... hay errores que desconocemos o errores impredecibles y con try me aseguro que jamas el programa se colgaría por un error de red con lo cual se cerraría el tanteador o quedaría colgado y se perdería la información del tanteador en ese momento y seria un rato muy desagradable para el arbitro y los jugadores, también para el organizador.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Usar O No Try? 
 
V3ctor:

Citar:
y se perdería la información del tanteador en ese momento y seria un rato muy desagradable para el arbitro y los jugadores, también para el organizador.

A lo mejor deberías de crear un sistema que cada vez que se produzca  un tanto o ocurra algo en el partido, quede registrado en un archivo de texto plano, el cual se podia recuperar si hay un fallo "total" de la aplicacion.

Hay otra cosa que te puede interesar, es el componente gb.logging, que hizo Sebikul, y que Jguardon lo explicó en este hilo:
http://foro.gambas-es.org/viewtopic.php?f=4&t=3495&highlight=log

( ufff. otra caso para añadir al curso de gambas    )
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Usar O No Try? 
 
jsbsan escribió: [Ver mensaje]

A lo mejor deberías de crear un sistema que cada vez que se produzca  un tanto o ocurra algo en el partido, quede registrado en un archivo de texto plano, el cual se podia recuperar si hay un fallo "total" de la aplicacion.



si es buena la idea, seria cuestión de hacer un archivo de registro de los tantos y y datos de momento si el partido termina y se guarda correctamente este archivo temporal se borraría y empezara un nuevo registro, y si el programa da fallo el archivo quedaría permanente en una carpeta,

supongo que en ese caso el archivo debería estar abierto permanente al comenzar el partido y solo cerrarse cuando el partido termino sin errores y se guardo en su respectivo txt.

ahí el comando usando Append seria el protagonista jaja
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Usar ProgressBar aristicol Controles/Librerías/Componentes 8 Martes, 26 Abril 2011, 18:40 Ver último mensaje
skaterleopoldo12
No hay nuevos mensajes Como Usar El Timer mesm82 Controles/Librerías/Componentes 6 Martes, 02 Julio 2013, 20:50 Ver último mensaje
shordi
No hay nuevos mensajes Usar DLL alessandri Aplicaciones/Fragmentos de Código 8 Martes, 04 Febrero 2014, 05:19 Ver último mensaje
codificador
No hay nuevos mensajes Usar Tipografía alessandri General 2 Miercoles, 25 Abril 2018, 20:42 Ver último mensaje
jguardon
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron