首先,我假设在为不存在的路径调用std::filesystem::file_size()
时,得到C++异常是正常的。但我想知道为什么会发生这种情况,和/或我应该做些什么来避免异常?
一般来说,我的印象是,异常意味着我作为程序员走错了路。这里是这样吗?从我的经验来看,似乎大多数文件实用程序(至少在Visual Studio中)都会对这些(看似微不足道的)事情抛出异常,即使你希望这些条件是它们正常操作和行为的一部分。
通常,我调用这些函数是因为我不确定文件是否存在。但是我应该在请求大小之前调用另一个函数来确保它存在,比如std::filesystem::exists()
?或者有什么方法可以禁用这些“次要”异常?我知道我可以在编译器中禁用异常,这样我就不会检测到它们。但在这种情况下它们仍在生成。任何关于这个主题的建议都将不胜感激。
1条答案
按热度按时间gmxoilav1#
使用
std::filesystem::file_size
的非抛出版本:或者将其封装到您自己的函数中,例如: