C++ Builder 参考手册 ➙ System::Sysutils ➙ ShowException
显示异常提示信息和产生异常的地址
头文件:#include <System.SysUtils.hpp>
命名空间: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