Boost mapped_file_source似乎在例如文件未找到。它究竟引入了哪些异常类?它似乎没有在文档中说,除非我遗漏了一些东西。
编辑:测试用例:
#include <boost/iostreams/device/mapped_file.hpp>
int main(int argc, char** argv) {
boost::iostreams::mapped_file_source file;
file.open(argv[1]);
return 0;
}
答案 0 :(得分:4)
如果映射失败,则代码
mapped_handle_ =
::CreateFileMappingA(
handle_,
NULL,
protect,
0,
0,
NULL );
if (mapped_handle_ == NULL)
cleanup_and_throw("failed create mapping");
最终会抛出一个
boost::iostreams::detail::throw_system_failure(msg);
即。 std::exception
的子类。在这种情况下,它应该是std::ios::failure
:
BOOST_IOSTREAMS_FAILURE
扩展到std :: ios_base ::失败(如果可用),并扩展到合适的版本 另外,派生类std :: exception。
参考:http://www.boost.org/doc/libs/1_41_0/libs/iostreams/src/mapped_file.cpp