Hola a todos:

Hoy vamos a ver algo que encuentro muy útil. Sobre todo si eres programador web, o no, da igual. Y es como controlar esos errores que da nuestro código, de forma tal que nuestro programa no colapse completamente.

Y para esto yo uso (y me parece que es lo más usado) las sentencias -Try—Catch—Finally- que para los que no saben ingles sería algo así como -Intentar—Capturar—Finalmente-

Es muy sencillo de usar y nos permite que nuestra aplicación siga funcionando “correctamente”, haciendo de la seriedad del error algo transparente para el usuario.

Veamos cómo funciona con este ejemplo comentado de un código que ya había posteado anteriormente en LDAP.

public bool IsAuthenticated(string username, string pwd)
{
//iniciamos nuestro bloque try
try
{
//aquí dentro va el código que queremos controlar que sería el más propenso a dar errores
string domainAndUsername = "epepc" + @"\" + username;
DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd); 

DirectorySearcher search = new DirectorySearcher(entry) {Filter = "(SAMAccountName=" + username + ")"};
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
if (null == result)
{
return false;
}
_path = result.Path;
_filterAttribute = (string) result.Properties["cn"][0];
}
//capturamos la excepción
catch (Exception error)
{
//hacemos con ella lo que deseemos. En otro post les mostrare lo que yo acostumbro a hacer
return false;
}
//es el comando al que se acudirá siempre, tanto si sucede un error como si no
finally
{

string x = "Esto lo puse aquí solo a modo de ejemplo";
}

return true;
}

Antes de subir este post decidí buscar por la web algo más al respecto porque siempre hay quien sabe más que uno y hay otros que saben aún más. Sobre todo por el hecho de ver como repercutía el uso de estas sentencias en el rendimiento. Y me encontré con un post al respecto muy interesante llamado El verdadero coste de los bloques try/catch. Se los recomiendo aunque les adelanto que no tienen que preocuparse por ello.

Espero que les haya aclarado el tema. Cualquier cosa siempre pueden preguntarme en sus comentarios.

Saludos

Anuncios