1
0
mirror of https://github.com/aportelli/LatAnalyze.git synced 2025-04-11 03:20:46 +01:00

more robust type cast in I/O functions

This commit is contained in:
Antonin Portelli 2016-04-15 18:23:17 +01:00
parent 64936d551c
commit 0bd347d010
3 changed files with 8 additions and 2 deletions

View File

@ -110,6 +110,12 @@ const IoT& File::getData(const std::string &name) const
LATAN_ERROR(Definition, "no data with name '" + name + "' in file " LATAN_ERROR(Definition, "no data with name '" + name + "' in file "
+ name_); + name_);
} }
catch(std::bad_cast)
{
LATAN_ERROR(Definition, "data with name '" + name + "' in file "
+ name_ + " does not have type '" + typeid(IoT).name()
+ "'");
}
} }
END_LATAN_NAMESPACE END_LATAN_NAMESPACE

View File

@ -187,7 +187,7 @@ int main(int argc, char *argv[])
{ {
process<DSample>(outFileName, fileName, code); process<DSample>(outFileName, fileName, code);
} }
catch (bad_cast &e) catch (Exceptions::Definition)
{ {
process<DMatSample>(outFileName, fileName, code); process<DMatSample>(outFileName, fileName, code);
} }

View File

@ -46,7 +46,7 @@ int main(int argc, char *argv[])
Io::save(s, copy, File::Mode::write, name); Io::save(s, copy, File::Mode::write, name);
} }
} }
catch (bad_cast &e) catch (Exceptions::Definition)
{ {
DSample s = Io::load<DSample>(fileName); DSample s = Io::load<DSample>(fileName);
string name = Io::getFirstName(fileName); string name = Io::getFirstName(fileName);