lunes, noviembre 29, 2004

Administración de errores (parte 2)

Entre las cosas que no debemos hacer cuando administramos errores están:
C# .NET

try {
  Function1();
} catch {}
Function2();

ASP

on error resume next

Function1()
Function2()


En ambos casos se está enmascarando a los errores y no administrándolos. Si bien esto hará que el usuario no vea ningún error, el peligro es muy grande, tal como se describió en el artículo anterior.

Veamos otro ejemplo de lo que no debemos hacer:
C#.NET

public bool DeleteFile(string fileName) {
  bool canDelete=false;
  try {
    System.IO.File.Delete(fileName);
    canDelete=true;
} catch {}
  return canDelete;
}

ASP

Function DeleteFile(fileName)
  On error resume next
  Dim fso, canDelete
  Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(fileName)
  Set fso = Nothing
  canDelete = (Err.number=0)
  Err.Clear
  DeleteFile = canDelete
End Function

Esta es una muy mala práctica. Hemos creado una función que intenta borrar un archivo y devuelve el éxito de la operación. Además de las razones dadas en el ejemplo anterior, acá se agrega que quién llama a la función debe revisar si la función tuvo éxito revisando su valor de verdad. Pero en el caso de que la función devuelva falso, no tenemos ninguna otra información útil que nos sirva para tomar decisiones. No es lo mismo que la función haya fallado porque no tiene permisos a que el archivo no exista.

En el próximo artículo veremos algunas buenas prácticas en la administración de errores.

2 comentarios:

Anónimo dijo...

Hola, Damián Bacalov: Un grupo de amigas estamos buscando información sobre diseño paginas web ixtapa mexico cuando encontramos tu blog. Tu título, Administración de errores (parte 2), nos ha gustado y lo hemos comentado. Estamos tratando de escribir algo relacionado con diseño paginas web ixtapa mexico para un proyecto de internet. Muchas gracias por permitirnos aprender de ti con tu excelente blog.

Anónimo dijo...

Hola Damián Bacalov: Estoy buscando información sobre aumentar ventas y encontré tu blog. Aunque el Administración de errores (parte 2) no es exactamente lo que buscaba, me detuve a leerlo pues me llamó la atención. Puedo ver ahora como di con tu blog cuando buscaba información relacionada con aumentar ventas. Me detuve de todas formas para leerlo - es un buen blog y te felicito. Gracias!