ShowException - C++ Builder

C++ Builder 参考手册 ➙ System::Sysutils ➙ ShowException


显示异常提示信息和产生异常的地址

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

void __fastcall ShowException(System::TObject *ExceptObject, void *ExceptAddr);

参数:

  • ExceptObject:产生异常的对象;
  • ExceptAddr:产生异常的地址;

返回值:

  • 函数无返回值,显示异常提示信息和产生异常的地址;
  • 如果是窗口程序,函数内部通过 MessageBox 显示异常信息;
  • 如果是控制台程序,异常信息输出到标准错误输出设备。如果是 Windows 操作系统,这个函数内部通过调用 API 函数 GetStdHandle(STD_ERROR_HANDLE) 获取这个设备,默认为控制台屏幕输出;
  • 这个函数内部通过调用 ExceptionErrorMessage 获取异常信息;
  • 如果要使用与 ShowException 不同的输出方式,可以直接通过 ExceptionErrorMessage 函数获取异常信息;
  • 产生异常的对象可以通过 System::ExceptObject() 获取,产生异常的地址可以通过 System::ExceptAddr() 获取。

例子:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    try
    {
        HANDLE hFile = CreateFile(L"D:\\Temp\\Hsuanlu.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        CheckOSError(GetLastError());
        CloseHandle(hFile);
    }
    catch(...)
    {
        TObject *pObj = System::ExceptObject();
        void *pAddr = System::ExceptAddr();
        ShowException(pObj, pAddr);
    }
}

运行结果:

运行结果

相关:

  • System::Sysutils::ShowException
  • System::Sysutils::ExceptionErrorMessage
  • System::Sysutils::RaiseLastOSError
  • System::Sysutils::CheckOSError
  • System::Sysutils::Win32Check
  • System::Sysutils::OutOfMemoryError
  • System::Sysutils::Abort
  • System::Sysutils::EAbort
  • System::Sysutils
  • System::ExceptObject
  • System::ExceptAddr
  • System
  • Vcl::Forms::TApplication::ShowException
  • Vcl::Forms

C++ Builder 参考手册 ➙ System::Sysutils ➙ ShowException

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