异常语句 try catch finally
try保护执行里面的代码段,若其中一句有误,直接跳转到catch,不会管下面内容
catch try中发现异常,直接执行,若try无错,不执行
finally 不管上面有没有错,都需要执行
案例://输入错误的情况下重新输入
//输入错误的情况下重新输入
for (int i = 1; i <= 3; i++)
{
if (i == 1)
{
Console.WriteLine("今儿中午吃什么?土豆、西红柿、茄子三选一");
}
string a = Console.ReadLine();
if (i == 2)
{
Console.Write("只有土豆、西红柿、茄子");
}
if (i == 3)
{
Console.Write("三选一,OK?");
}
if(a=="土豆")
{
Console.WriteLine("土豆是红烧还是炒");
}
else
{
Console.WriteLine("亲,真的只有这三种,不行你做");
}
} Console.ReadLine();
案例:
//输入年月日,看看格式是否正确
//每年的1,3,5,7,8,10,12月都是31天;
//2016年的2月是29天;
//其他的4,6,9,11是30天;
for (; ; )
{
Console.Write("请输入年份:");
int y = int.Parse(Console.ReadLine());
if (y >= 0 && y <= 9999)
{
for (; ; )
{
Console.Write("请输入月份:");
int m = int.Parse(Console.ReadLine());
if (m >= 1 && m <= 12)
{
for (; ; )
{
Console.Write("请输入日:");
int d = int.Parse(Console.ReadLine());
if (d >= 1 && d <= 31)
{
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
{
Console.WriteLine(y + "年" + m + "月" + d + "日");
break;
}
else if (m == 4 || m == 6 || m == 9 || m == 11)
{
if (d >= 1 && d <= 30)
{
Console.WriteLine(y + "年" + m + "月" + d + "日");
break;
}
}
else //m==2
{
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
{
if (d >= 1 && d <= 29)
{
Console.WriteLine(y + "年" + m + "月" + d + "日");
break;
}
else
{
Console.WriteLine("您的输入有误,请重新输入:");
}
}
else
{
if (d >= 1 && d <= 28)
{
Console.WriteLine(y + "年" + m + "月" + d + "日");
break;
}
else
{
Console.WriteLine("您的输入有误,请重新输入:");
}
}
}
}
else
{
Console.WriteLine("您输入的日期有误,请重新输入:");
}
}
break;
}
else
{
Console.Write("您输入的月份有误,请重新输入:");
}
}
break;
}
else
{
Console.Write("您的输入有误,请重新输入:");
}
}