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
}
no existe
Vaya por dios... con lo útil que es... xDDD
¿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
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.
Lo de los valores negativos y 0 ahí está, lo de las voces de alarma no tengo constancia, no, pero la idea mola.
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.
nadie dice que no molaria, solo que la respuesta a la pregunta si existe es "no"
Entonces esto no se implementará, estoy en lo cierto ? ;D
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?
la respuesta no era 'no' ? ;D
A ver, el ha dicho no a que no está implementado en la versión actual. Nadie ha hablado de futuras versiones xDDD
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...).
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.
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
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.