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{}块
{
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{}块
相关文章推荐
- C# try catch finally
- c#描述异常处理语句try、catch、finally执行时的相互关系
- C#中的异常捕获机制(try catch finally)
- C#中的异常捕获机制(try catch finally)
- C#中的try catch finally用法分析
- c#之try-catch-finally的用法之finally
- try-catch-finally(C# 简单学习)
- C#中的异常捕获机制(try catch finally)
- C#中的异常捕获机制(try catch finally)
- C#中的try catch finally
- c#关于try catch finally的使用,判断日期格式是否正确
- C#中的try catch finally用法分析
- C#中关于try...catch...finally的一些技巧
- C#中的异常捕获机制(try catch finally)
- C#中的异常捕获(try catch finally)
- C# try catch finally
- C#试题 Try Catch Finally
- [置顶] C# 深度剖析try catch finally及其性能影响
- 【c#】try...catch...finally
- C#中的try catch finally