在delphi中使用ApplicationEvents控件,如何调用ApplicationEvents1Exception?
我在编辑框中输入非数字,程序报错,并且“请在编辑框中输入数字”也弹出了,但是在ListBox中没有添加“应用程序发生了一个异常”。...
我在编辑框中输入非数字,程序报错,并且“请在编辑框中输入数字”也弹出了,但是在ListBox中没有添加“应用程序发生了一个异常”。
展开
3个回答
展开全部
因为异常已经在Button1Click中经由函数中的Try..Except处理了。所以ApplicationEvents自然无法拦截。你可以在except中将这个异常再度抛出。或者是直接在except中。将这个异常直接添加到ListBox1。例如:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
try
i := StrToInt(Edit1.Text) - 5;
明指和 ShowMessage('您输入的值减5后的值是: ' + IntToStr(i));
except
on e: EConvertError do
begin
ShowMessage('请在输入框中输入数字!');
//再度激盯抛出一个EConvertError异常,以便于让TApplicationEvents拦截
raise EConvertError.Create(e.Message);
end;
end;
end;
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);
begin
ShowMessage('调用了此过程');
ListBox1.Items.Add('此逗喊程序发生了一个异常,异常信息为: ' + E.Message);
end;
追问
追答
Delphi在调试的时候出现异常的话会弹出异常的信息。不管你是否添加了Try..Except。这个我也没有很好的办法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询