我想通过顶级应用程序的 try-catch 块而不是在属性表页面的处理程序(例如 OnInitDialog 处理程序)中捕获和处理异常。因此,在下面的代码中,这些异常应该在 catch (...) 块中处理。
try {
CMyPropertySheet sheet;
sheet.DoModal();
} catch (...) {
// i want to handle an exception here
}
但是,当 OnInitDialog 引发异常时,在运行 Windows 析构函数后会出现一个断言(在调试模式下)。即使我在 CMyPropertySheet 析构函数中调用 EndDialog(m_hWnd, IDCANCEL),断言仍然存在。您能否帮助检测丢失或损坏的内容?我使用 WTL。我的属性表 claa 派生自 CPropertySheetImpl。
谢谢。