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:%
Mostrar la cita
quiero
Mostrar la cita
Msgbox.
Mostrar la cita
pátetico)
Mostrar la cita
#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:%
Mostrar la cita
#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$
Mostrar la cita
hacer
Mostrar la cita
se
Mostrar la cita
"más
Mostrar la cita
archivo)
Mostrar la cita
en
Mostrar la cita
(más
Mostrar la cita
#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>

Mostrar la cita
es la forma "más
Mostrar la cita
copiar un archivo)
Mostrar la cita
correctamente, quiero
Mostrar la cita
existe la carpeta
Mostrar la cita
mostrarlos en un Msgbox.
Mostrar la cita
boolean y que ponga
Mostrar la cita
motivo del error en
Mostrar la cita
sea texto_error (más
Mostrar la cita
que cutre, pátetico)
Mostrar la cita
Ads by Google
Search Busqueda sugerida