Если ваша цель - создать исключение, чтобы вы не генерировали универсальное исключение ( cpp: S112 ), вы можете просто захотеть открыть исключение, от которого унаследовали ( C ++ 11 ) с объявлением об использовании.
Вот минимальный пример для этого:
#include <exception>
#include <iostream>
struct myException : std::exception
{
using std::exception::exception;
};
int main(int, char*[])
{
try
{
throw myException{ "Something Happened" };
}
catch (myException &e)
{
std::cout << e.what() << std::endl;
}
return{ 0 };
}
Как указывает Килиан в разделе комментариев, пример зависит от конкретной реализации std :: exception, которая предлагает больше конструкторов, чем указано здесь .
Во избежание этого вы можете использовать любой из удобных классов, предопределенных в заголовке <stdexcept>
. Посмотрите эти " Категории исключений " для вдохновения.