-1

ファイルの作成など、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 に基づいてコンパイルします。

4

1 に答える 1

4

次のようなこともできます。

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

または、自分で定義したいくつかの例外をキャッチしたいだけの場合は、カスタムBaseExceptionを作成してから、他のものをそのサブクラスとして定義できます。

于 2015-06-26T09:38:24.987 に答える