`std::filesystem::directory_iterator`优雅地处理不存在的目录
我有以下代码:
for (const auto& x : std::filesystem::directory_iterator(dir)) {
// do stuff with x
}
dir可能不存在,我想将这种情况视为 dir 为空。我似乎想不出一个好的选择。
- 如果我用
try/保护所有内容catch,那么我也会捕获迭代代码异常,我不想要那样。 - 如果我向上移动
std::filesystem::directory_iterator构造并用try/保护它catch,它会变得冗长,我将不得不重新抛出所有其他异常(它不会搞砸堆栈跟踪等吗?)。 - 如果我使用 的非抛出构造函数
directory_iterator,我将不得不抛出std::error_code其他错误。我不知道该怎么做。
THE END
二维码