Cuestión de estilo de programación

24/09/2004 - 10:40 por Cecilio | Informe spam
Hola a todos, me gustaría que me aconsejárais sobre cual es la forma "más
limpia" de implementar esto.

En una función que realice cierta acción, (por ejemplo copiar un archivo)
que devuelva cierto o falso según se haya completado correctamente, quiero
que en caso de que sea falso devuelva el motivo (no existe la carpeta
destino, no tiene permisos suficientes, etc..) sin mostrarlos en un Msgbox.
Se me ocurren 3 formas (a cada cual más cutre)

a)- Que la función devuelva un string en vez de un boolean y que ponga
"CORRECTO" en caso de que se haya realizado bien, y el motivo del error en
el otro caso. (cutre)

b)-Pasar a la función una variable por referencia que sea texto_error (más
cutre todavía)

c)Variable global donde poner el texto del error. (más que cutre, pátetico)


Muchas gracias por vuestros consejos.

Preguntas similare

Leer las respuestas

#1 Manuel C.
24/09/2004 - 11:04 | Informe spam
Hola Cecilio:

Y porque no creas una clase la cual tenga una propiedad TextoError
que la vayas llenando según el error que se genere y una propiedad Numero
error incluso. Es decir algo así como el objeto
"err" de VB6 pero en Net

Un saludo:

Manuel C.

"Cecilio" escribió en el mensaje
news:%
Hola a todos, me gustaría que me aconsejárais sobre cual es la forma "más
limpia" de implementar esto.

En una función que realice cierta acción, (por ejemplo copiar un archivo)
que devuelva cierto o falso según se haya completado correctamente,


quiero
que en caso de que sea falso devuelva el motivo (no existe la carpeta
destino, no tiene permisos suficientes, etc..) sin mostrarlos en un


Msgbox.
Se me ocurren 3 formas (a cada cual más cutre)

a)- Que la función devuelva un string en vez de un boolean y que ponga
"CORRECTO" en caso de que se haya realizado bien, y el motivo del error en
el otro caso. (cutre)

b)-Pasar a la función una variable por referencia que sea texto_error (más
cutre todavía)

c)Variable global donde poner el texto del error. (más que cutre,


pátetico)


Muchas gracias por vuestros consejos.





Respuesta Responder a este mensaje
#2 Alex Bibiano
24/09/2004 - 13:45 | Informe spam
En caso de error podrías lanzar una excepción personalizada. Deberías hacer
la llamada a la función dentro de un bloque try ... catch y controlar si se
ha producido una excepción. En caso de producirse uan excepción, podría
mirar el tipo de excepción y el texto.


"Cecilio" escribió en el mensaje
news:%
Hola a todos, me gustaría que me aconsejárais sobre cual es la forma "más
limpia" de implementar esto.

En una función que realice cierta acción, (por ejemplo copiar un archivo)
que devuelva cierto o falso según se haya completado correctamente,
quiero
que en caso de que sea falso devuelva el motivo (no existe la carpeta
destino, no tiene permisos suficientes, etc..) sin mostrarlos en un
Msgbox.
Se me ocurren 3 formas (a cada cual más cutre)

a)- Que la función devuelva un string en vez de un boolean y que ponga
"CORRECTO" en caso de que se haya realizado bien, y el motivo del error en
el otro caso. (cutre)

b)-Pasar a la función una variable por referencia que sea texto_error (más
cutre todavía)

c)Variable global donde poner el texto del error. (más que cutre,
pátetico)


Muchas gracias por vuestros consejos.





Respuesta Responder a este mensaje
#3 Fco. Javier Bedoya
24/09/2004 - 15:35 | Informe spam
Hola:
Además, la función ya no tendría porqué ser booleana (ahora sería un
procedimiento), pues el simple hecho de generar una excepción es sinónimo de
false, con lo que facilitas el código que gestiona a la función, sin
necesidad de comprobar cada vez si el resultado es true o false.
Ejemplo :
try
copiaArchivo(...)
catch ex As CopiaArchivoException
MsgBox("Error al copiar el archivo ... : " & ex.Message())
end try

Fco. Javier Bedoya
Web : http://javierbedoya.iespana.es
Para responder mis mensajes en las UseNet, quite ANTI SPAM
de la dirección de correo.
"Alex Bibiano" escribió en el mensaje
news:OJDQ$
En caso de error podrías lanzar una excepción personalizada. Deberías


hacer
la llamada a la función dentro de un bloque try ... catch y controlar si


se
ha producido una excepción. En caso de producirse uan excepción, podría
mirar el tipo de excepción y el texto.


"Cecilio" escribió en el mensaje
news:%
> Hola a todos, me gustaría que me aconsejárais sobre cual es la forma


"más
> limpia" de implementar esto.
>
> En una función que realice cierta acción, (por ejemplo copiar un


archivo)
> que devuelva cierto o falso según se haya completado correctamente,
> quiero
> que en caso de que sea falso devuelva el motivo (no existe la carpeta
> destino, no tiene permisos suficientes, etc..) sin mostrarlos en un
> Msgbox.
> Se me ocurren 3 formas (a cada cual más cutre)
>
> a)- Que la función devuelva un string en vez de un boolean y que ponga
> "CORRECTO" en caso de que se haya realizado bien, y el motivo del error


en
> el otro caso. (cutre)
>
> b)-Pasar a la función una variable por referencia que sea texto_error


(más
> cutre todavía)
>
> c)Variable global donde poner el texto del error. (más que cutre,
> pátetico)
>
>
> Muchas gracias por vuestros consejos.
>
>
>
>
>


Respuesta Responder a este mensaje
#4 Anonimo
24/09/2004 - 16:03 | Informe spam
Yo veo que lo que necesitas es que la funcion te devuelva
mas de un valor. Para esto podrias hacer que la funcion
retorna un Xml.

Ejemplo XML:
<Raiz>
<Ejecuto>False</Ejecuto>
<Error>
<Numero>...</Numero>
<Descripcion></Descripcion>
</Error>
</Raiz>

Hola a todos, me gustaría que me aconsejárais sobre cual


es la forma "más
limpia" de implementar esto.

En una función que realice cierta acción, (por ejemplo


copiar un archivo)
que devuelva cierto o falso según se haya completado


correctamente, quiero
que en caso de que sea falso devuelva el motivo (no


existe la carpeta
destino, no tiene permisos suficientes, etc..) sin


mostrarlos en un Msgbox.
Se me ocurren 3 formas (a cada cual más cutre)

a)- Que la función devuelva un string en vez de un


boolean y que ponga
"CORRECTO" en caso de que se haya realizado bien, y el


motivo del error en
el otro caso. (cutre)

b)-Pasar a la función una variable por referencia que


sea texto_error (más
cutre todavía)

c)Variable global donde poner el texto del error. (más


que cutre, pátetico)


Muchas gracias por vuestros consejos.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida