Mostrando entradas con la etiqueta checked. Mostrar todas las entradas
Mostrando entradas con la etiqueta checked. Mostrar todas las entradas

martes, 17 de julio de 2007

Checkey UnChecked

¿Qué pasa si definimos una variable, por ejemplo, byte y la desbordamos? No contesten...la hecatombe? no, no pasa nada, funciona como un buffer circular, o sea vuelve a contar desde cero. Bueno, está bien, pero si queremos evitar esto y en su lugar lanzar un linda excepción porque ese comportamiento perjudica nuestra lógica de negocios, bueno, para eso existe checked. Probemos este código

private void Test()

{

byte b = new byte();

Console.WriteLine(byte.MaxValue);

for (int i = 0; i <300;i++

{

Console.WriteLine(b++);

}

}

Lo ejecutamos y.... Nada. No lanza ninguna excepción, es más, vuelve a comenzar la cuenta, esto es así y es correcto, es decir, sigue la especificación. Entonces si queremos que se lance una excepción grotesca cuando se desborde algún tipo entero cómo hacemos. Así.

private void Test()

{

byteb = new byte();

Console.WriteLine(byte.MaxValue);

checked

{

for (int i = 0; i < 300; i++)

{

Console.WriteLine(b++);

}

}

}

Y nos aparece una excepción. En resumen, si queremos que se realice la comprobación de desbordamiento y se lance una excepción utilizamos checked sino unchecked.