Saturday, February 10, 2007

variables magicas para ayudarnos a debuguear excepciones

Este articulo aplica a C#, J#, y Visual Basic.
Ya habia leido sobre estas variables hace mucho tiempo, pero no podia encontrar nada acerca de estas magicas cosas por ningun lado, el problema mas que nada es que no se llaman magicas ni estan escondidas, estan documentadas y se llaman Pseudovariables;

Pseudovariables son terminos usados para mostrar cierta informacion en una ventana de variables o el dialogo QuickWatch. Puedes poner una pseudovariable de la misma manera que pondrias una variable normal. Pero las pseudovariables no son variables y no corresponden a variables en tu programa.

Pero bueno, no creo que mucha gente sepa sobre estas, asi que ahi les van:
  • $exception: Muestra informacion sobre la ultima excepcion. Si no ha ocurrido una excepcion evaluar $exception nos muestra un mensaje de error. En Visual C# solamente, cuando el asistente de excepciones esta desabilitado, $exception se agrega automaticamente a la ventana de locales cuando sucede una excepcion.
  • $user: Muestra una estructura con informacion de la cuenta del usuario corriendo la aplicacion. Por cuestiones de seguridad la informacion sobre el password no se muestra.
Cuando estas debugueando una excepcion podrias tener algun codigo asi:

try {
//algun codigo
} catch (Exception e) {
//no necesitas e aqui, solo la pusiste para tener la informacion de la excepcion en la ventana de Watch
}

Podrias escribir el codigo asi:
try {
//algun codigo
catch { } //pon el breakpoint en esta linea, inspecciona $exception (Debug, Watch, Watch 1, escribe $exception en esta ventana)

y obtener la misma informacion.

La pseudovariable $user esta claramente explicada, no hay mas que decir.

En codigo nativo tenemos algunas pseudovariables mas disponibles, checate el link si estas interesado.

son las pequeñas cosas...

No comments: