osgDB.InputException是OpenSceneGraph中的一个异常类,用于处理osgDB模块中的输入相关异常。当读取文件时,文件不存在或文件格式错误时,会触发该异常的抛出。
InputException(const std::string& message="", const std::string& fname="", int line=-1)
message
:异常信息。fname
:文件名。line
:代码行号。const std::string& getFileName() const
获取抛出异常的文件名。
int getLineNumber() const
获取抛出异常的代码行号。
#include <osgDB/ReadFile>
#include <osgDB/Input>
#include <osgDB/InputException>
int main(int argc, char** argv)
{
// 读取不存在的文件
try {
osgDB::readNodeFile("not_exist_file.osg");
}
catch (osgDB::InputException& ex) {
std::cout << "InputException caught:\n"
<< " Message: " << ex.getMessage() << "\n"
<< " File: " << ex.getFileName() << "\n"
<< " Line: " << ex.getLineNumber() << std::endl;
}
return 0;
}
输出:
InputException caught:
Message: Warning: Could not find plugin to read objects from file "not_exist_file.osg". Consider adding it to the OSG_FILE_PATH environment variable.
File: Input.cpp
Line: 476