I think he overridded the GetErrorMessage method in his CExecption derived
class.
AliR.
CException::GetErrorMessage() returns BOOL so that would cause serious
problems and I can't imagine how that could ever compile without errors.
I'm sure ::MessageBox() isn't too crazy about NULL either. You need to
pass a valid string argument, and it would be nice if it compiles too.
My catch blocks look like this:
e->ReportError();
e->Delete();
Nice and simple.
--
Jonathan Wood
SoftCircuits Programming
http://www.softcircuits.com
"Bogdan" <nouser@nodomain.com> wrote in message
news:uInxuGN5HHA.3916@TK2MSFTNGP02.phx.gbl...
Hi,
This is a pseudo code from InitInstance() of my dialog based app:
if (cmdInfo.m_strAppName.IsEmpty()) {
AfxMessageBox(IDS_SYNTAX, MB_OK | MB_ICONSTOP); // <= works fine!
return FALSE;
}
try {
/* ... */
CMyDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK) {
/* ... */ // might throw CMyException
} else if (nResponse == IDCANCEL) {
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
} catch (CMyException& e) {
// Neither of the calls below will display the box
//nResponse = AfxMessageBox(e.GetErrorMessage(), MB_OK |
MB_ICONSTOP);
nResponse = ::MessageBox(NULL, L"Text", L"Caption", MB_OK |
MB_ICONSTOP);
}
The problem is that whenever exception is thrown I could hear a beep but
the message box is not displayed. Both Afx.. and Win API functions
return immediately with ret code set to 1 (IDOK).
Could someone please give me some idea what might be causing that
behaviour?
Thanks,
Bogdan