---------------------- ASP.Net+Android+IO开发S 、 .Net培训、期待与您交流! ----------------------
(一),try-catch语句
C#语言提供了利用try-catch捕捉异常的方法,在try块中的任何语句产生异常,都会执行catch块中的语句来处理异常。
语法:
try
{
语句序列
}
catch(异常类型 标示符)
{
异常处理
}
执行过程:如果try中的代码没有出错,则程序就正常运行try中的代码,不会执行catch中的代码;如果try中的代码一旦出错,程序就立即跳入catch中去执行代码,那么try中出错代码之后的代码就没机会再执行了。
例如:
static void Main(string[] args)
{
Console.WriteLine("请输入一个整数:");
string str = Console.ReadLine();
try
{//把有可能出错的代码写在try中
int number = Convert.ToInt32(str);
Console.WriteLine("您刚刚输入的数字是{0}", number);
}
catch
{//出错了就立即跳进来执行catch中的代码
Console.WriteLine("您刚刚输入的不是数字!");
}
Console.ReadKey();
}
(二),try-catch-finally语句
如果try后有finally块,不论是否出现异常,也不论是否有catch块,finally块总是会执行的,即使在try内使用跳转语句或return语句也不能避免finally块的执行。
语法:
try
{
语句序列
}
catch(异常类型 标示符)
{
异常处理
}
finally
{
语句 序列
}
注意:finally块中做的是释放资源的操作,如关闭打开的文件等。
(三),throw语句
有时候在方法中出现了异常,不一定立即把它显示出来,而是想把这个异常抛出并让调用这个方法的程序进行捕捉和处理。所以这是我们就可以使用throw语句。
语法:
Throw[表达式];
注意:表达式的类型必须是System.Exception类或从System.Exception类继承的类的类型。Throw也可以不带表达式,但只能用在catch中。
例如:
static void Main(string[] args)
{
try
{
Method1();
}
catch(Exception er)
{//立即抓住Method1抛出的异常
Console.WriteLine("Main方法捕获到:"+er.Message);
}
Console.ReadKey();
}
static void Method1()
{
try
{
Method2();
}
catch(Exception er)
{//立即抓住Method2抛出的异常
Console.WriteLine("Method1中捕获到"+er.Message);
//重新抛出当前正在由catch块处理的异常er
throw;
}
}
static void Method2()
{
//Method2抛出新的异常
throw new Exception("Method2中抛出的异常");
}
---------------------- ASP.Net+Android+IO开发S 、 .Net培训、期待与您交流! ----------------------