问题描述
我写了一个原始简单的代码,我试图调试我的项目中出现的情况。我在创建新窗口时试图进入异常,但我没有到达那里,这是为什么?告诉我出了什么事?或阅读什么来理解。
所以我进入了“除外”部分!
procedure TForm1.Button1Click(Sender: TObject);
var
Local: TForm2;
begin
try
//Local := TForm2.Create(nil);
//Local.Show;
raise Exception.Create('not implement');
except
on E: Exception do
begin
end;
end;
end;
我需要处理这种情况。我不会像那样进入“除外”部分
模块 Form1.pas
procedure TForm1.Button1Click(Sender: TObject);
var
Local: TForm2;
begin
try
Local := TForm2.Create(nil);
Local.Show;
except
on E: Exception do
begin
end;
end;
end;
模块 Form2.pas
procedure TForm2.FormCreate(Sender: TObject);
begin
raise Exception.Create('not implement');
end;
解决方法
您将看到从 DoCreate
调用的 TCustomForm.Create
在 try 中有 OnCreate
并且它的异常将异常传递给 TApplication.HandleException
,后者将它传递给 {{1 }} 如果分配了一个。
如果认为如果您覆盖表单的 TApplication.OnException
,您可以返回 HandleCreateException
的结果,这将允许异常通过