
Щоб зупинити операцію ліцензійну кинув CUserException . Використання CUserException , коли ви хочете використовувати кидати/зловити виняток механізм для застосування конкретних винятки. "Користувач" в імені класу може бути витлумачено як "Мої користувача зробив щось винятковим, що мені потрібно для обробки".
CUserException зазвичай кинули після виклику функції глобального AfxMessageBox , щоб повідомити користувачеві, що операція не вдалося. Коли ви пишете обробник, обробив виняток, спеціально, оскільки користувач зазвичай має вже були повідомлені про провал. Рамках кидає цей виняток, в деяких випадках. Кинути CUserException себе, система попереджає користувача а потім викликати глобальні функції AfxThrowUserException.
У наведеному нижче прикладі функція, що містять операції, які можуть не попереджає користувача і кидає CUserException. Виклику функції ловить виняток і обробляє це спеціально:
недійсним (DoSomeOperation)
{
nbsp; / / Обробки
/ / Якщо щось піде не так...
AfxMessageBox ("x операцію не вдалося");
AfxThrowUserException ();
}
BOOL (TrySomething)
{
СПРОБУЙТЕ
{
/ / Може кинути на CUserException або інші виняток.
DoSomeOperation ();
}
УЛОВ ("CUserException", "e")
{
Повертає FALSE; / / Користувача вже повідомлено.
}
A&ND_CATCH ("CException", "e")
{
/ / Для інших типів виняток сповіщати користувача тут.
AfxMessageBox ("деякі операції не вдалося");
Повертає FALSE;
}
END_CATCH
повертає TRUE; / / Не виняток, кинули.
}
Щоб отримати додаткові відомості про використання CUserException, перегляньте статтю - Винятки в Visual C++ програміста керівництво.
# включити lt;afxwin.h>
Базовий клас членів |nbsp; Ієрархічна діаграма
Дивіться також CException, AfxMessageBox, AfxThrowUserException