Улавливает ли (...) фактически все исключения? - PullRequest
2 голосов
/ 21 ноября 2011

Я вижу, что catch (...) не перехватывает все исключения, и конечный пользователь создает раздражающее всплывающее окно.

size_t pos;
char *ptrDir="c:\\test";
std::string strDir = 
strDir.erase(strlen(ptrDir) - 1);
pos = strDir.find("Test");
try
{
    std::string strPat = strDir.substr(pos);
}
catch(...)
{
    std::cout<<"I am hiding Exception";
}

Я использую Visual Studio 2005, Windows XP.

Примечание. Код предназначен для создания исключений.Это тестовый код

1 Ответ

7 голосов
/ 21 ноября 2011

Ваш код, скорее всего, будет генерировать нарушения прав доступа, которые в VC ++ не будут стандартными исключениями, они относятся к сфере структурированных исключений, которые вы также можете поймать, но для этого потребуется использовать другой механизм:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...