在delphi里支持
  try 
     ...
  except 
     ...
  finally 
     ...
  end;
  连着写吗?
如果支持,该如何写呢?????

解决方案 »

  1.   

    try 
    try
         ...
      except 
         ...
    end;
      finally 
         ...
      end;
      

  2.   

    不可以这样写的。
    是两种触发机制,其中 “try...except...end”的话,只有try语句中某条触发才会执行except中的语句;但是 “try...finally...end”的话,总是要执行finally中的语句的
      

  3.   

    try
      try 
         ...
      except 
        ....
      end;
    finally
      ....
    end;
      

  4.   

    dulei115()写的有问题,使概念问题try .. except 是将异常截获处理的,所以在try .. except 外就没有异常了,除非你再raisetry .. except 感知异常但不作任何处理,所以在try .. finally 外异常仍然存在所以正确且规范的写法是:
    try
      ...
      try
        ...
      finally
        ...
      end;
      ...
    except
      ...
    end;dulei115()的写法在同一函数,运行效果和上面的写法没有区别,但跨函数错误就会表现出来
      

  5.   

    嵌套写:var
      F: TextFile;
      S: String;
    begin
      AssignFile(F,'Foo.Txt');
      
      try
         Reset(F);
         try
            ReadLn(F,S);
         finally
            CloseFile(F);
         end;
      except
         ShowMessage('文件打开发生错误');
      end; 
    end;
    try...finally代码块用来确保文件总是关闭的,而不管是不是发生了异常。
      

  6.   

    嵌套写:var
      F: TextFile;
      S: String;
    begin
      AssignFile(F,'Foo.Txt');
      
      try
         Reset(F);
         try
            ReadLn(F,S);
         finally
            CloseFile(F);
         end;
      except
         ShowMessage('文件打开发生错误');
      end; 
    end;
      

  7.   

    异常处理的try语句可以嵌套写
    var
      F: TextFile;
      S: String;
    begin
      AssignFile(F,'Foo.Txt');
      
      try
         Reset(F);
         try
            ReadLn(F,S);
         finally
            CloseFile(F);
         end;
      except
         ShowMessage('文件打开发生错误');
      end;
    end;
    except语句是出现异常时执行
    finally语句不管初步出现异常都执行