lunes, 5 de marzo de 2012

Como usar try-catch para validar una opción de menú cuando en lugar de número se aprieta una letra o se deja vacio

Aqui el codigo en su forma más simple para validar que no se metan letras o se deje vacio cuando necesitamos que el dato a introducir sea un número entero.

Esto lo haremos utilizando el try-catch para capturar cuando una conversion a entero no pueda llevarse a cabo y darle un tratamiento sencillo para evitar un error de sistema.



 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace usartrycatch
{
class Program
{
static void Main(string[] args)
{
int opcion; //declaramos una variable para guardar la opción
Console.WriteLine("1.-Jugar\n2.-Ayuda\n3.-Salir");
//imprimimos en pantalla el menú, la \n es un brinco de línea
try
{
opcion = int.Parse(Console.ReadLine());
//se lee una línea y se trata(try) de convertir a entero
//si la conversion se logra no pasa nada e ignora el catch
//pero si no logra hacer la conversión, entonces se ejecuta el catch
}
catch
{
opcion = 0; // le asignamos un valor cualquiera a opcion, por ejemplo 0
}
if (opcion > 0 && opcion < 4) //este if checa la opción escogida
Console.WriteLine("opción válida");
else
Console.WriteLine("opción Inválida");
//al correr este programa teclear una letra en lugar de un número
//o bien al apretar un enter sin escribir nada, en lugar de sacarnos un
//error del sistema y congelarnos el programa, nos envia solo el mensaje
//de opción incorrecta.
//Happy programming...
}
}
}

No hay comentarios:

Publicar un comentario en la entrada