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

C# try, catch ,finally

2011-12-05 09:23 393 查看
class Animal

{

public string get()

{

return "Animal";

}

public string set()

{

int i = 132;

string s = "abc";

object o = s;

try

{

i = (int)o;

return "ddd";

}

finally

{

Console.WriteLine("invalid-cast exception finally");

}

}

}

class Program

{

static void Main(string[] args)

{

Animal animal = new Animal();

try

{

animal.get();

animal.set();

//return;

}

catch (Exception e)

{

Console.WriteLine(e.Message);

return;

}

//Console.WriteLine("before finally");

finally

{

Console.WriteLine("finally");

int a = 10;

}

}

}

在set函数中,不论是否发生异常,或者直接return,finally语句块都将被执行。

而在Main函数中,如果没有catch到执行set时抛出的异常(注释掉Main函数中的catch块),程序将直接崩溃,虽然在最后也会执行finally,但这种执行将没有意义。

所以主函数需要一个囊括所有执行代码的try{}catch{}块
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: