function TForm1.getid(id: string) :Boolean;
begin
  if id = '0' then Result:= True
  else
  result:=False;
end;procedure TForm1.BT1Click(Sender: TObject);
begin
  try
    getid(edt1.Text);
    ShowMessage('0');
  except
    ShowMessage('1');
  end;
end;问题:如果函数getid返回false,相当于try捕捉到错误,如何让程序执行except下的程序,输出为1?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      try
        if getid(edit1.Text) then
           ShowMessage('0')
        else
           raise Exception.Create('');
      except
        ShowMessage('1');
      end;
    end;
      

  2.   

    楼上正解,抛出一个异常,就会跳转到Except。
      

  3.   

    谁跟你说函数返回false就是有异常了?!-_-!
      

  4.   

    你这段代码即使返回false也不会执行ShowMessage('1');
    try except是有异常才执行里面的代码的比如:
    try
     x:=strtoint(edit1.text);
    except
     showmessage('1');
    end;若edit1输入的不是数字,就出现异常了,就会执行showmessage('1');
      

  5.   

    只是判斷true/false,就不必用except了if getid(edt1.Text) then
     ShowMessage('0')
    else
     ShowMessage('1');