大家好:
    try...finally...end语句是实现异常保护功能的。但不发生异常他能不能实现finally后的代码总被执行。如下边的一段代码:try
if combobox1.text='进厂' then 
  dy_mao;
finally
  set_data;
  set_databak;
end;
finally后的set_data和set_databak 能不能总被执行。
    我是个delphi新手,望大家能多介绍一些异常保护方面的知识。
    谢谢!
                                               王振亚
                                              2003.12.11

解决方案 »

  1.   

    不论try是否有异常finally后面总会执行...
      

  2.   

    好象try...finally...end语句中finally后面的语句总会被执行的,try...except...end语句except后面的语句是异常保护功能的
      

  3.   

    不论try是否有异常finally后面总会执行
      

  4.   

    无论何种原因,当前执行点离开try...finally之间这一块时,都要执行一下finally...end之间的代码.
      

  5.   

    楼主可能没搞清楚try...finally...end和try...except...end的区别
    前者finally后的语句总会执行。后者只有异常的时候才会执行except后的语句
      

  6.   

    如果没有aa这个表,程序将会出错,那么异常代码应怎样写呀!
    procedure TForm2.Button4Click(Sender: TObject);
    begin
        adoquery1.SQL.Clear;
        adoquery1.SQL.Add('drop table aa;');
        adoquery1.Prepared;
        adoquery1.ExecSQL;
    end;
      

  7.   

    try...finally...end和try...except...end的区别
    try...finally...end   finally后的语句总会执行;try...except...end只有异常的时候才会执行except后的语句
      

  8.   

    try...finally...end   finally后的语句总会执行;
    try...except...end    只有在触发异常的时候才会执行except后的语句
      

  9.   

    begin
      try
        adoquery1.SQL.Clear;
        adoquery1.SQL.Add('drop table aa;');
        adoquery1.Prepared;
        adoquery1.ExecSQL;
      except
         //异常处理
      end;
    end;//晕倒啊!!
      

  10.   

    不论try是否有异常finally总会执行, 要他就是来作这个的:)~~~
      

  11.   

    finally后的代码总会执行
    Except后的代码是在异常时才执行!