+ -
当前位置:首页 → 问答吧 → 【急】Try用法的小问题

【急】Try用法的小问题

时间:2011-09-09

来源:互联网

try
  语句1
  语句2
  语句3
  语句4
  语句5
finally
  // 空语句
end;

在上面的例子中,如果“语句3”出现异常,“语句4”还能执行吗?

怎样才能不理会语句中的错误,从头运行的尾呢???

作者: wanghhole   发布时间: 2011-09-09

我试验了一下,try语句貌似对分母为0的异常无效

procedure TForm1.Button1Click(Sender: TObject);
var
a :single;
b :single;
c :single;
begin
  try

  a:=1;
  b:=0;
  c:=5;
  a:=a/b;
  c:=c+1;
  c:=c+1;
  edit1.Text:=floattostr(a);
  edit2.Text:=floattostr(b);
  edit3.Text:=floattostr(c);

  except
  //
  end;
  edit4.Text:=floattostr(a+b+c);
end;


还是会跳出来个框框,说你有个分母为0的错误

作者: wanghhole   发布时间: 2011-09-09

你不能直接用delphi编译运行,这样一直都会报错的,你要用delphi编译了你的项目之后,手动打开那个EXE文件,这样try报错的时候,就会执行except里面的代码,前一句错误,后一句不会执行,或者你可以每句都使用try区分

作者: mengdiewufeng   发布时间: 2011-09-09

引用楼主 wanghhole 的回复:
try
语句1
语句2
语句3
语句4
语句5
finally
// 空语句
end;

在上面的例子中,如果“语句3”出现异常,“语句4”还能执行吗?

怎样才能不理会语句中的错误,从头运行的尾呢???



try
finally
end;
首先你要理解try..finally的用途,无论try..finally中间发生了什么错误,finally之后的语句都会执行,但是try..finally如果中间的什么位置出错了,就会停止在那里,但不影响finally后的执行。。

作者: wanjianjun   发布时间: 2011-09-09

如果Try检测到异常会直接去执行except里面的内容,如果有finally的话最后才执行finally里的内容

作者: m617105   发布时间: 2011-09-09

引用楼主 wanghhole 的回复:
try
语句1
语句2
语句3
语句4
语句5
finally
// 空语句
end;

在上面的例子中,如果“语句3”出现异常,“语句4”还能执行吗?

怎样才能不理会语句中的错误,从头运行的尾呢???


每个语句都用try except包起来:
try 语句1 except end;
try 语句2 except end;
try 语句3 except end;
try 语句4 except end;
try 语句5 except end;

作者: sz_haitao   发布时间: 2011-09-09

try
...
finally
...
end;

try
...
except
...
end;
区别理解清楚,就明白语句是怎么执行了,请阅读相关基础知识文档

作者: zlb_chen   发布时间: 2011-09-09

热门下载

更多