delphi - 在 Delphi 中更改引发异常的图标

标签 delphi exception exception-handling delphi-2007

在我们的应用程序中,我们创建了几个 Exceptions 类来满足我们的所有需求。但现在的问题是,引发的异常对话框总是 MessageType mtError当然显示mtError -图标。
对于我们的一些异常(exception)情况,我更喜欢不那么激进的图标/消息类型,例如 MessageType mtInformation .

有什么方法可以直接在 Exceptionclass 中更改图标,而无需使用 try...except 再次提升和捕获它每次出现?

最佳答案

您将需要自定义顶级异常处理程序。

编写一个事件处理程序并将其附加到 Application.OnException .然后,您可以以任何您喜欢的方式处理特定的异常。

事件处理程序将如下所示:

procedure TMainForm.ApplicationException(Sender: TObject; E: Exception); 
begin   
  if E is EMyException then
    ShowExpectedMessageBox(E)
  else
    Application.ShowException(E);
end;

显然你必须为 ShowExpectedMessageBox 编写代码。 .这可以使用您喜欢的任何图标显示消息框。

OnException当未处理的异常到达消息循环时调用事件。如果您没有事件处理程序,框架会调用 Application.ShowException .对于那些没有得到特殊待遇的异常(exception)情况,您应该这样做。

关于delphi - 在 Delphi 中更改引发异常的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16208305/

相关文章:

delphi - 如何获取TGroupBox主题标题字体颜色

java - 服务层远程握手异常

c# - 如何获取引发 UnauthorizedAccessException 的路径?

java - 说服我使用异常进行用户验证是错误的

xml - 用于 GPX 文件的 Delphi 免费 XML 解析器/阅读器

delphi - 检查 W10 上的 Windows 版本

Delphi汇编器常量 'eof'

c# - 没有强制异常处理?

c++ - 安置新的和异常(exception)

python - 使用Python的subprocess.Popen时的异常处理