关于try...except,原程序是这样的
for i := 1 to (n - 1) do
begin
try
y[i] := Lwl / Scale * (unit1.Form1.ADOQuery8.FieldbyName(Fn).AsFloat * Sqrt(g * (Lwl / Scale))) /Nyu;
except
else
y[i] := 0;
end;
因为Nyu可能会为零,所以会有出错对话框,点了确定后会执行y[i] := 0;
我想不让出错对话框出现可以做到吗?(在不改变try...except语句结构的情况下)
for i := 1 to (n - 1) do
try
y[i] := Lwl / Scale * (unit1.Form1.ADOQuery8.FieldbyName(Fn).AsFloat * Sqrt(g * (Lwl / Scale))) /Nyu;
except
y[i] := 0;
end;
先判断Nyu是否为零不就可以了?
if Nyu = 0 then y[i]:= 0 else
y[i] := Lwl / Scale * (unit1.Form1.ADOQuery8.FieldbyName(Fn).AsFloat * Sqrt(g * (Lwl / Scale))) /Nyu;
应为你的Nyu=0的时候 在TRY里并没有出错啊
出错的是你的y[i] := Lwl / Scale * (unit1.Form1.ADOQuery8.FieldbyName(Fn).AsFloat * Sqrt(g * (Lwl / Scale))) /Nyu;整体啊
出错对话框是在调试状态显示的.你如果不在delphi里运行而是双击生成的.exe文件就不会出现了.也就是说用户是看不到你说的那个框的