Я пишу довольно простое приложение на C ++, используя g ++ под Linux, и я пытаюсь использовать некоторые необработанные строки как исключения (да, я знаю, это не очень хорошая практика).
У меня есть следующий код (упрощенно):
int main()
{
try
{
throw "not implemented";
}
catch(std::string &error)
{
cerr<<"Error: "<<error<<endl;
}
catch(char* error)
{
cerr<<"Error: "<<error<<endl;
}
catch(...)
{
cerr<<"Unknown error"<<endl;
}
}
И я получаю Unknow error
на консоли. Но если я приведу статическую строку к std::string
или char *
, она напечатает Error: not implemented
, как и ожидалось. Мой вопрос: так какой тип я должен ловить, если я не хочу использовать статическое приведение?