Merge pull request #4791 from heewa/fix-lost-err-msg
[Base] Fix lost filename in err msg
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user