Я пишу довольно простое приложение на С++, используя 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
, как и ожидалось. Мой вопрос: так, какой тип я должен поймать, если я не хочу использовать статические приведения?