delphi中如何用try...except处理异常

供稿:hz-xin.com     日期:2025-01-18
请教Delphi中的异常事件处理Try.Except用法

例;
try
Age := StrToInt(Edit1.Text);
ShowMessage(Format('生于%d年', [YearOf(Now) - Age]));
except
on EConvertError do
showmessage('输入编辑框的不是一个有效的数字!');
on ERangeError do
showmessage('输入编辑框的年龄值太大!');
end;
其它用法你可以百度菜鸟部落giyu8 然后搜索try

procedure TClientFrmMain.BtnStartClick(Sender: TObject);
begin
if not ClientSocket.Socket.Connected then
try
ClientSocket.Active:=False;
ClientSocket.Host:='PC-201004041415';
ClientSocket.Port:=StrToInt(EdPort.Text);
ClientSocket.Open;
ShowStr('正在建立与'+ClientSocket.Socket.RemoteAddress+'的连接...');
except on e:Exception do
begin
ShowStr('connection error '+E.Message);
end;
end;
end;

不会.
try..Except能够拦截数据库错误信息.不知道2楼为什么这么说.
你的语句没有执行是因为你的代码位置不对!

try
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into 设备入库表(code,name,,provider,price) values(code,name,provider,,price)');
adoquery1.Parameters.ParamValues['code'] := trim(edit1.Text);
adoquery1.Parameters.ParamValues['name'] := trim(edit2.Text);
adoquery1.Parameters.ParamValues['provider'] := trim(edit5.Text);
adoquery1.Parameters.ParamValues['price'] := strtofloat(edit4.Text);
////////Except放在这里.因为在执行的时候才会出错.
adoquery1.execSQL;
end;
application.MessageBox('入库成功!', '提示', 64);
Tabsheet1Show(Sender);
end
except
Messagedlg('入库错误', mtError, [mbok], 0);
end

呵呵。数据库的错误信息。delphi在拦截不了。需要单独处理。可以嵌套try…finally…end试试
服了 呵呵!一些底层的错误信息delphi是无法像这样拦截的。

可以拦截的。楼上的用FINALLY是不对的。
楼主可以看一下你的代码是否全部包在Try...Except...end中。

try
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into 设备入库表(code,name,,provider,price) values(code,name,provider,,price)');
adoquery1.Parameters.ParamValues['code'] := trim(edit1.Text);
adoquery1.Parameters.ParamValues['name'] := trim(edit2.Text);
adoquery1.Parameters.ParamValues['provider'] := trim(edit5.Text);
adoquery1.Parameters.ParamValues['price'] := strtofloat(edit4.Text);
adoquery1.execSQL;
end;
application.MessageBox('入库成功!', '提示', 64);
Tabsheet1Show(Sender);
end
except
Messagedlg('入库错误', mtError, [mbok], 0);
end

delphi没有处理这个异常的类吧

跪求一个有用的仙剑5激活码,有的发邮箱939173677@qq.com,谢谢了!
回答:上海软星已经给盗版搞垮了,孩子,支持国产吧