为了提高程序的健壮性,即遇到错误能够自行纠错并正常运行的能力,我们常常采用try...catch..finally语句。
try中包含可能发生异常的语句块。一旦发现异常,则直接跳到catch部分,剩下的try语句则不再执行。catch中包含遇到错误执行的语句,catch可以选择要捕捉的特定错误类型,如数组越界,变量类型错误等等,也可以不指定而捕捉所有错误。finally是最后运行的,无论是否出现异常都会执行。
下面是一个简单示例
using System;
namespace Csharp_2
{
class Program
{
static void Main(string[] args)
{
int num1, num2;
Console.WriteLine("请输入一个整数:");
while(true)
{
try
{
num1 = Convert.ToInt32(Console.ReadLine());
break;//当try中的语句发生异常,后面的语句将不再执行
}
catch//可以指定要捕捉的异常类型
{
Console.WriteLine("非整数,请重新输入");
}
}
Console.WriteLine("请再输入一个整数:");
while (true)
{
try
{
num2 = Convert.ToInt32(Console.ReadLine());
break;
}
catch
{
Console.WriteLine("非整数,请重新输入");
}
}
int sum = num1 + num2;
Console.WriteLine(sum);
}
}
}