这会终于打电话吗?

时间:2013-06-20 07:21:57

标签: c# try-catch finally

假设我有这个代码。如果异常是InvalidData,请执行此操作以最终调用以清理资源。

while(CanWork){
            try
            {
                 ....
            }
            catch (InvalidDataException e)
            {
                LogAction(false, e.Message, e.StackTrace);
                break;
            }
            catch (Exception e)
            {
                LogAction(false, e.Message, e.StackTrace);
            }
            finally
            {
                if (insta != null)
                {
                    insta.Disconnect();
                    insta.Dispose();
                    insta = null;
                }
            }
          }

2 个答案:

答案 0 :(得分:4)

是的,但是当它即将离开时,而不是在try or catch中的代码完成执行之后。

答案 1 :(得分:1)

当然可以。 finally块总是被执行。有关详细信息,请参阅此link