オープンするファイルのリストを含む設定ファイルを読み込むサービスアプリケーションがあります。問題は、ディレクトリ内のファイルが見つからない場合、例外をスローしてスレッドをキャンセルし、サービスアプリケーションを停止する場合です。ここで キャンセルしないでスレッドのファイルオープンエラーをどのように処理する必要がありますか?
は、関数のコードブロックはスレッドで呼び出されます:FILE* file_;
ServiceApp::File::File(const char* filename, const char* mode) :
file_(fopen(filename, mode))
{
if(!file_)
{
// throwing will stop the service when file doesn't exist, what work around could we do?
throw std::runtime_error("file open failure");
}
質問:私たちは、configファイルにリストされているファイルがで見つからないときので、これを防ぐにはどうすればよい ディレクトリ、アプリケーションはそれを無視し、プロセスを続行するでしょうか?
これはC++ 0xにのみ適用できますか? – Owen
@Owenはい。あなたが 'C++ 11 'を使うことができないならば、boostもおそらく動作します。 – inf