try-catch-finally是很常用的语法结构,用来控制可能发生异常时的程序流程,其中catch和finally至少要有一个。

1、将预见可能发生异常的代码包含在try语句块中
2、如果发生了异常,则转入catch的执行
catch有几种写法

  • catch:这将捕获任何发生得异常。
  • catch(Exception e)这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。
  • catch(Exception的派生类 e)这将捕获派生类定义的异常,比如,我想捕获一个无效操作的异常,可以这么写:
catch(InvalidOperationException e) {...};

这样,如果try语句块中抛出的异常时InvalidOperationException,将转入该处执行,其他异常不处理。

3.finally
finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行的。这个以便让我们有机会能够在异常处理最后做一些清理工作,比如关闭数据库连接,关闭文档等。

注意:如果没有catch语句,那么finally语句就是必须的。如果你不希望在这里处理异常,而当异常发生时提交到上层处理。但在这个地方无论发生异常,都必须要执行一些操作,就可以使用try finally。很典型的就是进行数据库操作:

try
{
	DataConnection.Open();
	DataCommand.ExecuteReader();
	...
	return;
}
finally
{
	DataConnection.Close();
}
posted on 2018-09-21 14:24  雪山老狐  阅读(480)  评论(0编辑  收藏  举报