在delphi中关闭运行时的delphi异常

cyb*_*0lf 1 delphi exception

有没有办法在Delphi应用程序中关闭运行时显示的异常消息?我认为必须有一个指令来关闭异常消息,但我不记得它.

Rob*_*edy 13

处理TApplication.OnException事件可以抑制大多数异常消息.如果没有为该事件分配处理程序,则应用程序对象仅显示异常消息.如果您愿意,欢迎您TApplication.ShowException在处理程序中调用某些例外情况.

对于在VCL消息循环中运行时发生的异常,将触发该事件.在别处发生的异常会终止您的程序或当前线程.此外,仅针对来自的异常触发事件Exception; 从其他类继承的异常直接传递给SysUtils.ShowException.

无论您是否显示消息,一旦发生您尚未处理的异常,您的程序仍处于不确定状态.仅仅压制信息就像扫除地毯下的灰尘一样.更好的做法是使用像MadExcept,EurekaLogJclDebug这样的异常日志记录工具来记录有关异常的信息,并为您的客户提供将报告发送给您的选项,以便您可以重现错误的条件并修复它.

  • EurekaLog(也许还有其他人?)也可以自动重启应用程序.如果目标是阻止用户查看错误,并且您希望获得高可用性(可能是自助服务终端?),则使用其中一个调试记录器应用程序记录错误,然后静默重新启动应用程序.否则,您将隐藏错误,直到您的应用程序降级到无法运行的程度,并且无论如何都需要重新启动. (2认同)