function TForm1.rt: integer;
var i:integer;
begin
i:=101;
result:=-1;
if i>100 then
raise TEMyerr.Create; // 随便哪个异常都行
end;{Raise引发异常的程序段执行没有返回值}
procedure TForm1.BtnReadResultClick(Sender: TObject);
var rs:integer;
begin
rs:=rt;
showMessage(intTostr(rs)); //显示的为空
end;结果: 程序中Raise一个异常后,那个程序的返回值就没了,像Rt中的Result不再是-1,而是空的吧?? 那我如何取得Raise前的Result的值? 谢谢
var i:integer;
begin
i:=101;
result:=-1;
if i>100 then
raise TEMyerr.Create; // 随便哪个异常都行
end;{Raise引发异常的程序段执行没有返回值}
procedure TForm1.BtnReadResultClick(Sender: TObject);
var rs:integer;
begin
rs:=rt;
showMessage(intTostr(rs)); //显示的为空
end;结果: 程序中Raise一个异常后,那个程序的返回值就没了,像Rt中的Result不再是-1,而是空的吧?? 那我如何取得Raise前的Result的值? 谢谢
function TForm1.rt: integer;
var i:integer;
begin
i:=101;
try
if i>100 then
raise TEMyerr.Create; // 随便哪个异常都行
except
result:=-1;
end ;
end;
procedure TForm1.BtnReadResultClick(Sender: TObject);
var rs:integer;
begin
try
rs:=rt;
except
showMessage(intTostr(rs)); //显示的为空
end;
end;