TObject::SafeCallException - C++ Builder

C++ Builder 参考手册SystemTObjectSafeCallException


头文件:#include <systobj.h>
命名空间: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 平台 <System.Win.ComObj.hpp>:

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

其他平台 <System.SysUtils.hpp>:

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"");
}

参考:


C++ Builder 参考手册SystemTObjectSafeCallException

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容