TObject::SafeCallException - C++ Builder

C++ Builder 参考手册 ➙ System ➙ TObject ➙ SafeCallException


头文件:#include
命名空间:System
函数原型:

virtual HRESULT __fastcall SafeCallException(TObject *ExceptObject, void *ExceptAddr);

System::TObject::SafeCallException 是 System::TObject 的成员函数,是处理异常的函数。

参数:

ExceptObject:抛出的异常,从 Exception 继承过来的对象;
ExceptAddr:产生异常的地址;

返回值:

返回错误编码。如果不支持接口,返回 E_UNEXPECTED。

  • TObject 的这个函数只是简单的返回 E_UNEXPECTED,从 TObject 继承的子类可以重载这个函数来处理异常。

以下通过分析源码得到的:

如果从 TObject 继承的子类是 COM 接口,可以调用 HandleSafeCallException 处理异常。

Windows 平台

HRESULT __fastcall HandleSafeCallException(
    System::TObject *ExceptObject, 
    void *ExceptAddr, 
    const GUID &ErrorIID, 
    const System::WideString ProgID, 
    const System::WideString HelpFileName);

其他平台

HRESULT __fastcall HandleSafeCallException(
    System::TObject *ExceptObject, 
    void *ExceptAddr, 
    const GUID &ErrorIID, 
    const System::UnicodeString ProgID, 
    const System::UnicodeString HelpFileName);

SafeCallException 和 HandleSafeCallException 的应用:

HRESULT __fastcall TMyClass::SafeCallException(TObject *ExceptObject, void *ExceptAddr)
{
    return HandleSafeCallException(ExceptObject, ExceptAddr, iid, L"", L"");
}

参考:

  • System::Classes::TComponent::SafeCallException
  • System::TObject
  • VCL 类继承关系

C++ Builder 参考手册 ➙ System ➙ TObject ➙ SafeCallException

你可能感兴趣的:(TObject::SafeCallException - C++ Builder)