你的do while 语句是个死循环,而输入错误时,又会突出整个程序,应该为:
while(pb.age > 0)
{
try
{
Console.WriteLine("Please Enter Your Age:");
pb.age=byte.Parse(Console.ReadLine());
}
catch(Exception e)
{
Console.WriteLine("Input Error,Please Re-Input!");
pb.age=0;
}
}
还有,age还是用int 比较好吧?

解决方案 »

  1.   

    楼上的大哥,我按你的方法还是不行呀~~会出现“使用了可能未赋值的字段age”哦,现在该怎么办呀!!?
      

  2.   

    pb.age=0;
    while(pb.age = 0)
    后面照旧。
    {
    try
    {
    Console.WriteLine("Please Enter Your Age:");
    pb.age=byte.Parse(Console.ReadLine());
    }
    catch(Exception e)
    {
    Console.WriteLine("Input Error,Please Re-Input!");
    pb.age=0;
    }
    }
      

  3.   

    把return;去掉,
    在try块的最后一行添加break;
      

  4.   

    将 do.. while 部分改为:
    do
      {
        try
        {
           Console.WriteLine("Please Enter Your Age:");
           pb.age=byte.Parse(Console.ReadLine());

        }
        catch(Exception e)
        {
           Console.WriteLine("Please Re-Input!");
           pb.age=0;
        }
    }while( pb.age == 0 );
      

  5.   

    用do-while
    do{
    try
    {
    Console.WriteLine("Please Enter Your Age:");
    pb.age=byte.Parse(Console.ReadLine());
    }
    catch(Exception e)
    {
    Console.WriteLine("Input Error,Please Re-Input!");
    pb.age=0;
    }
    }while(pb.age > 0)
      

  6.   

    sorry,写错了
    应该是while(pb.age == 0)