Catch syntax errors during iterator initialization

This commit is contained in:
aothms
2015-11-30 23:41:27 +01:00
parent bf292cccd0
commit b6e2d78bfa
+4
View File
@@ -180,6 +180,7 @@ namespace IfcGeom {
// by the parent's context inverse attributes. // by the parent's context inverse attributes.
continue; continue;
} }
try {
if (context->hasContextType()) { if (context->hasContextType()) {
std::string context_type = context->ContextType(); std::string context_type = context->ContextType();
boost::to_lower(context_type); boost::to_lower(context_type);
@@ -187,6 +188,7 @@ namespace IfcGeom {
filtered_contexts->push(context); filtered_contexts->push(context);
} }
} }
} catch (const IfcParse::IfcException&) {}
} }
// In case no contexts are identified based on their ContextType, all contexts are // In case no contexts are identified based on their ContextType, all contexts are
@@ -204,10 +206,12 @@ namespace IfcGeom {
IfcSchema::IfcGeometricRepresentationContext* context = *it; IfcSchema::IfcGeometricRepresentationContext* context = *it;
representations->push(context->RepresentationsInContext()); representations->push(context->RepresentationsInContext());
try {
if (context->hasPrecision() && context->Precision() < lowest_precision_encountered) { if (context->hasPrecision() && context->Precision() < lowest_precision_encountered) {
lowest_precision_encountered = context->Precision(); lowest_precision_encountered = context->Precision();
any_precision_encountered = true; any_precision_encountered = true;
} }
} catch (const IfcParse::IfcException&) {}
IfcSchema::IfcGeometricRepresentationSubContext::list::ptr sub_contexts = context->HasSubContexts(); IfcSchema::IfcGeometricRepresentationSubContext::list::ptr sub_contexts = context->HasSubContexts();
for (jt = sub_contexts->begin(); jt != sub_contexts->end(); ++jt) { for (jt = sub_contexts->begin(); jt != sub_contexts->end(); ++jt) {
representations->push((*jt)->RepresentationsInContext()); representations->push((*jt)->RepresentationsInContext());