可能是重复问题:
为什么在C#中使用finally?
在C#中,使用finally
子句的目的是什么?
例如。
try {
// do something
}
catch (Exception exc)
{
// do something
}
// do something
最后的代码不管怎样都会执行吗?finally
块有什么作用呢?
可能是重复问题:
为什么在C#中使用finally?
在C#中,使用finally
子句的目的是什么?
例如。
try {
// do something
}
catch (Exception exc)
{
// do something
}
// do something
最后的代码不管怎样都会执行吗?finally
块有什么作用呢?
最后是针对即使catch抛出异常的情况,finally允许您在成功和失败时执行代码,finally将始终被执行。始终。
好的,除非应用程序在系统级别被终止或计算机爆炸。
finally 块确保在前两个语句被激活时,块中的任何内容都将被执行。
一个很好的例子是释放数据库资源。
示例:
try
{
//Open a database connection
}
catch
{
//Catch exception, database connection failed
}
finally
{
//Release the opened database connection resources
}
因为有一些对象需要进行清理,否则会对您的应用程序造成问题。
经常使用的例子是使用 SqlConnection:
SqlConnection conn = new SqlConnection(connString);
try
{
conn.Open();
throw new ArgumentException();
}
catch(SqlException ex)
{
}
try
{
conn.Open();
throw new ArgumentException();
}
catch(SqlException ex)
{
}
finally
{
conn.Dispose();
}
在编程中,有些代码片段需要无论前面的代码是否成功都要执行。通过使用Try/Catch/Finally语句,您可以从错误处理中获益。
finally
块被保证在捕获异常时运行,即使异常处理块抛出更多异常。通常用于清理某些资源,如打开的文件句柄、网络连接等...
这里有一些好的例子:
Finally 确保无论 try 成功或失败,其中的内容都将被执行。在发生 catch 的情况下,不能保证最后的 //do something
中的所有内容都会被执行。