私はTFile
というクラスを持っていて、それを変更できません。入出力ファイルが見つからない場合は例外をスローしませんが、メソッドIsZombie
を使用してiternalステータスをチェックできます。今、私は非常に単純な例外実装しました:FileNotFoundError例外を実装する必要がありますか?
class FileNotFoundError : public std::runtime_error
{
public :
FileNotFoundError(const std::string & file_name="")
: runtime_error("cannot find file " + file_name), filename(file_name) {};
string filename;
~FileNotFoundError() throw() {};
};
をし、私のようにそれを使用する:この例外を実装するためのより良い方法がある
f = new TFile(total.c_str(), "RECREATE") ;
if (f->IsZombie())
{
throw FileNotFoundError(total);
}
、私は意味:それは投げることuserfulです私のカスタム例外ではなくifstream::failure
という標準例外がありますか?
サイドコメントとして、上のスニペット - >メモリリークで割り当てたメモリを解放せずに、スローする可能性があります。 –