Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Yawin on May 23, 2011, 06:34:58 PM

Title: Try catch
Post by: Yawin on May 23, 2011, 06:34:58 PM
Pues mi duda es muy sencilla: existe en Bennu el try catch??

¿¿Sabéis a qué me refiero no??
En C# sería:
try
{
    loquesea;
}
catch(exception err)
{
    lo que sea
}
Title: Re: Try catch
Post by: SplinterGU on May 23, 2011, 06:36:52 PM
no existe
Title: Re: Try catch
Post by: Yawin on May 23, 2011, 06:37:54 PM
Vaya por dios... con lo útil que es... xDDD
Title: Re: Try catch
Post by: Drumpi on May 23, 2011, 06:42:31 PM
¿Por qué? En bennu no hay excepciones, hay valores que indican error (generalmente valores negativos o cero) si la función no va como debería, y en caso de error grave, es el SO el que da la voz de alarma (segmentation fault o ventanazo de error) :P
Title: Re: Try catch
Post by: SplinterGU on May 23, 2011, 07:55:02 PM
Quote from: Drumpi on May 23, 2011, 06:42:31 PM
¿Por qué? En bennu no hay excepciones, hay valores que indican error (generalmente valores negativos o cero) si la función no va como debería, y en caso de error grave, es el SO el que da la voz de alarma (segmentation fault o ventanazo de error) :P

vos decis que existe eso en bennugd? explica entonces como se hace.
Title: Re: Try catch
Post by: Windgate on May 23, 2011, 08:05:14 PM
Lo de los valores negativos y 0 ahí está, lo de las voces de alarma no tengo constancia, no, pero la idea mola.
Title: Re: Try catch
Post by: Yawin on May 23, 2011, 08:15:58 PM
Pues molaría que se pudiese hacer un try catch, de forma que intentas entrar a un fichero que no existe y si está dentro de un try catch pos salte al catch. No se, creoq ue puede ser una herramienta util.
Title: Re: Try catch
Post by: SplinterGU on May 23, 2011, 08:27:58 PM
nadie dice que no molaria, solo que la respuesta a la pregunta si existe es "no"
Title: Re: Try catch
Post by: FreeYourMind on May 23, 2011, 11:04:12 PM
Entonces esto no se implementará, estoy en lo cierto ?  ;D
Title: Re: Try catch
Post by: SplinterGU on May 24, 2011, 12:02:00 AM
Quote from: FreeYourMind on May 23, 2011, 11:04:12 PM
Entonces esto no se implementará, estoy en lo cierto ?  ;D

te equivocas, por que ese razonamiento? nadie hablo de que se hara o no, por que tu asumes que no se hara?

por otro lado, para que te pensas que estan reservados los simbolos onerror?
Title: Re: Try catch
Post by: FreeYourMind on May 24, 2011, 06:35:19 AM
la respuesta no era 'no' ?  ;D
Title: Re: Try catch
Post by: Yawin on May 24, 2011, 04:12:51 PM
A ver, el ha dicho no a que no está implementado en la versión actual. Nadie ha hablado de futuras versiones xDDD
Title: Re: Try catch
Post by: Drumpi on May 26, 2011, 08:03:34 PM
Quote from: SplinterGU on May 23, 2011, 07:55:02 PM
Quote from: Drumpi on May 23, 2011, 06:42:31 PM
¿Por qué? En bennu no hay excepciones, hay valores que indican error (generalmente valores negativos o cero) si la función no va como debería, y en caso de error grave, es el SO el que da la voz de alarma (segmentation fault o ventanazo de error) :P
vos decis que existe eso en bennugd? explica entonces como se hace.

??? yo no he dicho tal cosa. ¿Cómo se hace el qué?

Quote from: yawin on May 23, 2011, 08:15:58 PM
Pues molaría que se pudiese hacer un try catch, de forma que intentas entrar a un fichero que no existe y si está dentro de un try catch pos salte al catch. No se, creoq ue puede ser una herramienta util.

Si intentas entrar en un fichero que no existe:
-Pirmero, tienes GLOB, FILE_EXISTS y otras funciones para saber si existe o no el fichero.
-Segundo, si usas FOPEN y hay un fallo (no existe o no se puede abrir) este devuelve 0.
-Tercero, si aun así insistes y usas FREAD o similares, devolverán el número de datos leidos, en este caso, cero.

Vamos, que si sigues necesitando TRY-CATCH, es que te gusta hacer las cosas a las bravas :D
Y con todas las funciones es igual, al menos con el 90% de ellas. TRY-CATCH puede venir bien si trabajamos con punteros o con arrays, para evitar que se cierre el programa por un segmentation fault (error que da SDL, Windows, Linux...).
Title: Re: Try catch
Post by: SplinterGU on May 26, 2011, 09:24:40 PM
Quote from: Drumpi on May 26, 2011, 08:03:34 PM
Quote from: SplinterGU on May 23, 2011, 07:55:02 PM
Quote from: Drumpi on May 23, 2011, 06:42:31 PM
¿Por qué? En bennu no hay excepciones, hay valores que indican error (generalmente valores negativos o cero) si la función no va como debería, y en caso de error grave, es el SO el que da la voz de alarma (segmentation fault o ventanazo de error) :P
vos decis que existe eso en bennugd? explica entonces como se hace.

??? yo no he dicho tal cosa. ¿Cómo se hace el qué?

Quote from: yawin on May 23, 2011, 08:15:58 PM
Pues molaría que se pudiese hacer un try catch, de forma que intentas entrar a un fichero que no existe y si está dentro de un try catch pos salte al catch. No se, creoq ue puede ser una herramienta util.

Si intentas entrar en un fichero que no existe:
-Pirmero, tienes GLOB, FILE_EXISTS y otras funciones para saber si existe o no el fichero.
-Segundo, si usas FOPEN y hay un fallo (no existe o no se puede abrir) este devuelve 0.
-Tercero, si aun así insistes y usas FREAD o similares, devolverán el número de datos leidos, en este caso, cero.

Vamos, que si sigues necesitando TRY-CATCH, es que te gusta hacer las cosas a las bravas :D
Y con todas las funciones es igual, al menos con el 90% de ellas. TRY-CATCH puede venir bien si trabajamos con punteros o con arrays, para evitar que se cierre el programa por un segmentation fault (error que da SDL, Windows, Linux...).

que quisiste decir? porque sigo pensando que quisiste decir eso.
Title: Re: Try catch
Post by: Drumpi on May 27, 2011, 10:16:46 PM
Pues quise decir que todas las funciones, en caso de error, en lugar de provocar una excepción (que interrumpe el programa y todo eso) devuelven un código de error para que se pueda seguir con la ejecución normal del programa o alterarlo para arreglarlo o dar el aviso.
En el caso de que el error sea muy grave (lectura de memoria fuera de rango, división por cero o similares) salta una excepción, pero no desde Bennu, sino desde el Sistema Operativo (o desde las SDL). Quizás ahí fuese interesante tener la opción de corregir o salir limpiamente del programa, pero que actualmente bennu no lo tiene.

¿Así queda más claro? :D
Title: Re: Try catch
Post by: SplinterGU on May 27, 2011, 10:38:17 PM
si, pero eso no es lo que ha preguntado... no importa lo que devuelvan las funciones, eso no es un try/catch... bennugd no controla las excepciones y no hay forma de capturarlas actualmente.

yawin y todos los que participamos, ya sabiamos lo que explicaste, yawin tiene claro lo que es una excepcion no hubiese preguntado por esta funcionalidad... y ahi fue donde, con tu respuesta, surgio la confuncion.