Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单朴素的delphi错误处理_Delphi_Error Handling_Twebbrowser - Fatal编程技术网

简单朴素的delphi错误处理

简单朴素的delphi错误处理,delphi,error-handling,twebbrowser,Delphi,Error Handling,Twebbrowser,下面的代码片段不能像我预期的那样工作,我认为它将显示我希望它显示的消息,而没有调试器异常通知“进程引发了异常类EAccessViolation,消息为“模块XXXX中地址0045D9E7处的访问冲突”,但程序的运行方式与我的想法相反。这是为什么 procedure TForm1.btn1Click(Sender: TObject); begin try (WebBrowser1.Document as IHTMLDOCUMENT2).execCommand('Refresh',f

下面的代码片段不能像我预期的那样工作,我认为它将显示我希望它显示的消息,而没有调试器异常通知“进程引发了异常类EAccessViolation,消息为“模块XXXX中地址0045D9E7处的访问冲突”,但程序的运行方式与我的想法相反。这是为什么

procedure TForm1.btn1Click(Sender: TObject);
begin
    try
    (WebBrowser1.Document as IHTMLDOCUMENT2).execCommand('Refresh',false,0);
    except
      ShowMessage('caught!');
    end;
end;
除非未选中调试器选项的“语言异常”中的“通知语言异常”,或者“EAccessViolation”是同一对话框中要忽略的异常类型之一,否则调试器会在引发语言异常时立即停止程序并显示异常

注意,根据,如果选中“通知语言异常”复选框,调试器将忽略“要忽略的异常类型”中的列表。然而,这似乎不是每个德尔福威瑞森的情况。在我的测试中,D2007符合忽略列表(即使该框未选中)。对于XE2,我无法以任何方式忽略EAccessViolation。

除非调试器选项“语言异常”中的“语言异常通知”未选中,或者“eAccessVillation”是同一对话框中要忽略的异常类型之一,一旦引发语言异常,调试器将停止程序并显示异常


注意,根据,如果选中“通知语言异常”复选框,调试器将忽略“要忽略的异常类型”中的列表。然而,这似乎不是每个德尔福威瑞森的情况。在我的测试中,D2007符合忽略列表(即使该框未选中)。对于XE2,我无法以任何方式忽略EAccessViolation。

为什么代码会引发异常?WebBrowser1未分配?文件未分配?外部异常?还有别的事吗?不知道你在问什么——它是如何表现的?你期望它做什么?您是否知道默认情况下调试器将始终显示异常?@SertacAkyuz WebBrowser1应该在刷新之前先导航到某个网站。@world-当然。它本可以在表单create..@NickHodges中完成f.i.我希望它能做一些错误处理,在这种情况下,它会显示一条消息,而不是显示调试器的通知。为什么代码会引发异常?WebBrowser1未分配?文件未分配?外部异常?还有别的事吗?不知道你在问什么——它是如何表现的?你期望它做什么?您是否知道默认情况下调试器将始终显示异常?@SertacAkyuz WebBrowser1应该在刷新之前先导航到某个网站。@world-当然。它本可以在表单create..@NickHodges中完成这项功能。我希望它能进行一些错误处理,在这种情况下,它会显示一条消息,而不是显示调试器的通知。@world-不客气。关于第二段,事实上,我不能让XE2以任何方式忽略每一个访问违规。@world-不客气。关于第二段,事实上,我不能让XE2以任何方式忽略每一次违反。