【问题标题】:How to capture an exception created by an event in Delphi如何在 Delphi 中捕获由事件创建的异常
【发布时间】:2014-05-25 02:22:53
【问题描述】:

我正在使用第三方组件在 Delphi 中使用正则表达式创建掩码,问题是当用户在编辑框中输入的值与掩码不匹配时,组件会引发异常,我不知道如何在第三方组件内的事件中发生异常时捕获它。

如何捕捉和处理这种异常?因为我不能在它周围有一个 try 块?

【问题讨论】:

  • 目前是如何处理的?通过组件还是顶级处理程序?
  • 你知道哪个事件引发了异常吗?

标签: delphi events exception exception-handling delphi-xe


【解决方案1】:

要更改组件的行为,您应该创建一个继承自初始组件的新组件。在新组件中,您覆盖需要具有其他行为的方法。

但是,这并不总是可行的,具体取决于组件的编写情况。

例如,可能有一个 EditExitHandler 来处理离开编辑时发生的事情。在您继承的组件中,您可以编写如下内容:

procedure TMyComponent.EditExitHandler(Sender : TObject);
begin
    try
        inherited EditExeitHandler(Sender);
    except
        // Add code here to handle the exception which annoys you
    end;
end;

【讨论】:

    【解决方案2】:

    您可以使用TApplicationEvents.OnException event。只要在应用程序运行时引发未处理的异常,就会调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 2019-12-28
      • 2015-09-15
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      相关资源
      最近更新 更多