Page 1 of 1

Gemix soprta exceptciones???

Posted: Fri Nov 07, 2008 11:57 am
by necro_vampire
al hacer una excepcion, se pude continuar el progrma...

Code: Select all

PROGRAM Tutorial_0;
	GLOBAL:
		DIR_naveFPG ="tutorial\tutor0.fpg";
/* este archivo contiene varios graficos
* lugar 1 : la nave
* lugar 2 : el fondo
*/
		ID_naveFPG;
		fondo = 0;	//identificador del fondo
		fuenteprueba;
		dir_fuente = "help\help.fnt";
BEGIN
fuenteprueba = load_fnt(dir_fuente);
	TRY
	//comienzo del bloq TRy lineas q pueden generar un error
	ID_naveFPG = load_fpg(DIR_naveFPG); // Loads grphics' file
	END //del bloque TRY
	CATCH //esto se ejecuta si ocurre un error
		write(fuentePrueba, 0, 0, 3, "Error al cargar archivo");
	END
	FINALLY
	//este bloq siempre se ejecuta hayya error o no
		END
    put_screen(fondo,2);  // Sets graphic number 2 as screen background
    ship();           // Creates a "ship" type process
END

esto seria muy uitl no para probar las cargas de archivo...
sino para las transacciones con la base datos...

Code: Select all

...    TRY
	//comienzo del bloq TRy lineas q pueden generar un error
	        AbrirConeccionBD(My_DB);
                TRY //inicio del bloque try de las transacciones
                    ActualizarRegistro(My_DB, registro);   //siendo registro una estructura...
                 END //del bloque try de las transacciones
                 CATCH
                 write(fuentePrueba, 0, 0, 3, "Error al realizar la actualizacion de datos");
	END //del bloque TRY de conexxion
	CATCH //esto se ejecuta si ocurre un error
		write(fuentePrueba, 0, 0, 3, "Error al stablecer conexxion con la base d datos");
	END
	FINALLY
	//este bloq siempre se ejecuta hayya error o no
              CerrarCoeccionBD(My_DB);
	END
...

Re: Gemix soprta exceptciones???

Posted: Fri Nov 07, 2008 1:31 pm
by CicTec
Gemix no soporta Excepciones, de momento no hay nada di lejos similar, quizas en futuro se anadira algo para la gestion de los errores, de momento existe una gestion interna de errores de runtime que se verifican en unas funciones (y que se puede ignorar con la funcion IGNORE_ERROR: ver la DOC de DIV2) y lo unico para ver si una funcion falla o no es verificar su valor de retorno.