Я собираюсь сделать что-то в 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.
Вы можете сделать что-то вроде:
try
{
//your code
}
catch(FirstException &e){}
catch(SecondException &e){}
...
Или, если вы просто хотите перехватить некоторые определенные вами исключения, вы можете создать BaseException
а затем определить другие как подклассы этого.