You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 10运行时错误仅调试器可见,无调试时程序终止如何解决?

解决Delphi程序直接运行无错误提示的问题
  • 启用Delphi运行时错误弹窗
    打开Delphi IDE,依次点击 Tools -> Options,在窗口中展开 Debugger -> Embarcadero Debuggers -> OS Exception,勾选Show exception message dialog选项。部分Delphi版本需在Project -> Options -> Build -> Runtime Errors中,确认Stop on Delphi exceptions相关选项已正确设置,让程序遇未处理异常时弹出提示。

  • 添加全局异常捕获代码
    在项目文件(.dpr)的主运行逻辑中,用try...except包裹核心代码,手动捕获并展示错误信息,还可写入日志方便排查:

    begin
      Application.Initialize;
      Application.MainFormOnTaskbar := True;
      try
        Application.CreateForm(TForm1, Form1);
        Application.Run;
      except
        on E: Exception do
        begin
          ShowMessage('程序错误: ' + E.Message + #13#10 + '错误类型: ' + E.ClassName);
          // 写入错误日志到文件
          with TStringList.Create do
          try
            Add(DateTimeToStr(Now) + ' - ' + E.ClassName + ': ' + E.Message);
            SaveToFile('error_log.txt');
          finally
            Free;
          end;
        end;
      end;
    end.
    
  • 为文件操作添加局部异常处理
    在读取文件的代码块中,针对性捕获文件名错误这类异常,避免异常扩散导致程序直接终止:

    procedure TForm1.ReadFileBtnClick(Sender: TObject);
    var
      FileStream: TFileStream;
    begin
      try
        FileStream := TFileStream.Create('目标文件名.txt', fmOpenRead);
        try
          // 文件读取逻辑
        finally
          FileStream.Free;
        end;
      except
        on E: EFileNotFoundException do
        begin
          ShowMessage('文件不存在,请检查文件名: ' + E.FileName);
        end;
        on E: Exception do
        begin
          ShowMessage('文件读取失败: ' + E.Message);
        end;
      end;
    end;
    
  • 检查Windows系统错误报告设置
    右键此电脑 -> 属性 -> 高级系统设置 -> 高级标签下点击错误报告,选择启用错误报告或勾选但在发生严重错误时通知我,确保系统在程序崩溃时给出基础提示。

内容的提问来源于stack exchange,提问作者Andrew Mandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:54:23