编写的代码最怕出现的情况是运行中有错误出现,但是无法定位错误代码位置。综合《C#4.0图解教程》,总结如下:

TryCatchFinally用到的最多的是TryCatch,Catch可以把Try代码块的错误捕捉到,并对错误进行后续处理。这一点比较常见。

现在要讨论的是如果Try和Catch代码块有return时代码的执行顺序。众所周知,return的作用是退出当前函数,不执行return后面的代码。那么问题来了:如果return出现在Try或catch代码块中,并且return后面还有代码,则return后面的代码将不再执行,程序直接退出这个函数。假如我们在这个函数中有一些代码无论何种情况下都是必须要执行(比如ADO.Net中的数据库连接,为保证稳定,即使代码出现异常也需要通过代码强制关闭该连接),那么简单的TryCatch就不能很好的满足需求了。此时Finally代码块的作用就显现出来了。

《C#4.0图解教程》中讲到,Finally代码块的优先级比较高,不论TryCatch代码块如何运行,最后都要执行Finally代码块。即使Try和Catch中有return也无妨。

直接上图,具体的代码执行顺序在图中标注的比较清楚。

第一张:return出现在Catch中

当C#中带有return的TryCatch代码遇到Finally时代码执行顺序


第二张:return出现在Try中

当C#中带有return的TryCatch代码遇到Finally时代码执行顺序

相关文章:

  • 2022-12-23
  • 2021-10-30
  • 2021-09-11
  • 2022-12-23
  • 2021-10-16
猜你喜欢
  • 2022-12-23
  • 2021-09-08
  • 2021-08-17
  • 2022-02-09
  • 2022-12-23
  • 2021-10-07
相关资源
相似解决方案