Merge pull request #4791 from heewa/fix-lost-err-msg

[Base] Fix lost filename in err msg
This commit is contained in:
Chris Hennes
2021-09-14 09:23:03 -05:00
committed by GitHub
2 changed files with 13 additions and 7 deletions

View File

@@ -248,17 +248,13 @@ const char* XMLAttributeError::what() const throw()
FileException::FileException(const char * sMessage, const char * sFileName)
: Exception( sMessage ),file(sFileName)
{
if (sFileName) {
_sErrMsgAndFileName = _sErrMsg + ": ";
_sErrMsgAndFileName += sFileName;
}
setFileName(sFileName);
}
FileException::FileException(const char * sMessage, const FileInfo& File)
: Exception( sMessage ),file(File)
{
_sErrMsgAndFileName = _sErrMsg + ": ";
_sErrMsgAndFileName += File.fileName();
setFileName(File.fileName().c_str());
}
FileException::FileException()
@@ -274,6 +270,15 @@ FileException::FileException(const FileException &inst)
{
}
void FileException::setFileName(const char * sFileName) {
file.setFile(sFileName);
_sErrMsgAndFileName = _sErrMsg;
if (sFileName) {
_sErrMsgAndFileName += ": ";
_sErrMsgAndFileName += sFileName;
}
}
std::string FileException::getFileName() const
{
return file.fileName();
@@ -324,7 +329,7 @@ void FileException::setPyObject( PyObject * pydict)
Py::Dict edict(pydict);
if (edict.hasKey("filename"))
file.setFile(static_cast<std::string>(Py::String(edict.getItem("filename"))));
setFileName(Py::String(edict.getItem("filename")).as_std_string("utf-8").c_str());
}
}

View File

@@ -262,6 +262,7 @@ protected:
// necessary for what() legacy behaviour as it returns a buffer that
// can not be of a temporary object to be destroyed at end of what()
std::string _sErrMsgAndFileName;
void setFileName(const char * sFileName=0);
};
/**