開くファイルのリストを含む構成ファイルを読み取るサービス アプリケーションがあります。問題は、ディレクトリ内にファイルが見つからない場合です。例外がスローされるため、スレッドがキャンセルされ、サービス アプリケーションも停止します。
スレッドで呼び出される関数のコード ブロックを次に示します。
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");
}
質問: 構成ファイルにリストされているファイルがディレクトリで見つからない場合、アプリケーションがそれを無視してプロセスを続行するように、これを防ぐにはどうすればよいですか?