您的位置:首页 > 编程语言 > C#

【C#】小心使用Try,Catch,finally

2011-09-02 10:40 330 查看

(1) 使用try{}finally{}

  在有返回值的函数中使用try{}finall{},未使用catch捕获异常,程序将崩溃:

  public static int GetNumber()
{
int i=0;
try
{
int j =0;
i = 5/j;//引发异常
}
finally
{
Console.WriteLine("输出来自方法GetNumber的finally块");
//return -2;//finally中不能含有return语句
}
return i;
}

public static void Main()
{
int i =GetNumber();//发生异常并且未捕获,未能获得返回值
Console.WriteLine("number:{0}",i);
Console.ReadKey();
}


  ouput:



  在Main方法中添加异常处理,使得程序发生异常时不崩溃:

public static void Main()
{
try
{
int i =GetNumber();//发生异常并且未捕获,未能获得返回值
Console.WriteLine("number:{0}",i);
}
catch
{
Console.WriteLine("输出来自main的catch块");
}
finally
{
Console.ReadKey();
}
}


output:



(2) 使用try{}catch{}finally{}

  在方法GetNumber中添加catch块捕获异常:

  public static int GetNumber()
{
int i=0;
try
{
int j =0;
i = 5/j;//引发异常
}
catch
{
i=-1;
}
finally
{
Console.WriteLine("输出来自方法GetNumber的finally块");
//return -2;//finally中不能含有return语句
}
return i;
}


  output:

  


总结

  在含有调用含有返回值的方法时,如果必须保证得到返回值且在被调用函数中使用了try块,则必须同时在被调用函数中使用catch块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: