Dudas con una funcion y el uso de try catch
Hola amigos, ahora estoy ya intentando mejorar la aplicación y en vez de usar (nothrow) quiero usar try catch y en la siguiente funcion lo hago pero no se si hace lo que yo quiero ¿podeis decirme si se me pasa algo y ayudarme a corregirla?
Código PHP:
|
hola,
has probado de poner un return divisiones enla ultima linea de cada catch ? |
es que he leido que no es una buena practica poner un return al final de un catch.
Aquí lo que leí: http://www.marteens.com/trick0d.htm Si alguien puede aclararme las ideas al respecto... |
Hola aguml.
No he probado el código, pero en apariencia es correcto. Lo único que me gustaría comentarte es una alternativa que te evitará el doble llamado al operador delete(): Código PHP:
|
La verdad es que no se como acomodar lo que me pones "ecfisa". Otra cosa, cuando entro en el catch y ejecuto la ultima linea que está dentro del catch ¿ejecuta el return de la funcion? ¿que pasa al salir del catch?
|
Cita:
Otro ejemplo: Código PHP:
Cita:
Podes usar un breakpoint y ejecutar con F7 (o devolver un valor arbitrario) para comprobarlo. Saludos :) |
Hola,
Digo yo una cosa, ¿debe una función informar al usuario, directamente, de que se ha producido un error? ¿No debería más bien la función "levantar" la excepción, y, ser quien llame a dicha función quien avise del error al usuario si este lo ve necesario? Claro que podemos tratar excepciones en bloques de código fuera de funciones, y, ahí lo vería más lógico, pero, para mí que una función sólo debe levantar excepciones y no directamente mensajes de error. ¿Cómo lo véis vosotros? :) |
Hola dec.
Estoy totalmente de acuerdo con eso. El tratamiento de los mensajes de error debería realizarse aparte. En lo personal aprovecho el evento OnException para la personalización de los mismos. Sólo quería señalarle a aguml, que se puede evitar la redundancia de declaraciones de liberaciones de recursos con la extensión de C++ Builder, __finally. Saludos :) |
Hola.
Un ejemplo muuuy resumido ... Código PHP:
|
La franja horaria es GMT +2. Ahora son las 12:05:31. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi