对如何在 C++ 中处理多个 "Possible" 异常感到困惑

Confused about how can I handle several "Possible" exceptions in C++

我打算用 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,然后将其他定义为该异常的子类。