Запутался в том, как я могу обработать несколько «возможных» исключения в переполнении стека

Я собираюсь сделать что-то в C ++, например, создать файл. В функции, которая создает файл, я установил несколько исключений для возможного сбоя. Например, если файл существует, если диск заполнен, если доступ разрешен, если создание файла успешно завершено и т. Д. Теперь, когда я хочу поймать их ВСЕ, я запутался.

int file_create(std::string file_name) {...} // includes several exceptions at various points

try{
file_create("/var/simple.txt");
}
catch(...){
// what should I do here to have a specific control over what exception is throw?
}

я знаю ... это для всеохватывающего, но я не делаю, если это позволяет более глубокое расследование брошенного исключения?

Я компилирую на основе C ++ 011.

-1

Решение

Вы можете сделать что-то вроде:

try
{
//your code
}
catch(FirstException &e){}
catch(SecondException &e){}
...

Или, если вы просто хотите перехватить некоторые определенные вами исключения, вы можете создать BaseException а затем определить другие как подклассы этого.

4

Другие решения


По вопросам рекламы [email protected]