diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp index 338bdc68adb2918c40707048664c773447404fa4..837fcbcf8278e12b120b3dc9ff0a0b1de514fc9a 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp @@ -84,60 +84,43 @@ namespace armarx::armem::server::obj instance::SegmentAdapter::init(); - // class segment - try + const auto initSegmentWithCatch = [&](const std::string & segmentName, const auto&& fn) { - classSegment.init(); - } - catch (const LocalException& e) - { - ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what(); - } - catch (const std::exception& e) - { - ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what(); - } - catch (...) + try + { + fn(); + } + catch (const LocalException& e) + { + ARMARX_ERROR << "Failed to init " << segmentName << " segment. Reason: \n" << e.what(); + } + catch (const std::exception& e) + { + ARMARX_ERROR << "Failed to init " << segmentName << " segment. Reason: \n" << e.what(); + } + catch (...) + { + ARMARX_ERROR << "Failed to init " << segmentName << " segment for unknown reason."; + } + }; + + initSegmentWithCatch("class", [&]() { - ARMARX_ERROR << "Failed to init class segment for unknown reason."; - } + classSegment.init(); + }); - // articulated object class segment - try + initSegmentWithCatch("articulated object class", [&]() { articulatedObjectClassSegment.init(); - } - catch (const LocalException& e) - { - ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what(); - } - catch (const std::exception& e) - { - ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what(); - } - catch (...) - { - ARMARX_ERROR << "Failed to init class segment for unknown reason."; - } + }); - // articulated object instance segment - try + initSegmentWithCatch("articulated object instance", [&]() { articulatedObjectInstanceSegment.setArticulatedObjectClassSegment(articulatedObjectClassSegment); articulatedObjectInstanceSegment.init(); - } - catch (const LocalException& e) - { - ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what(); - } - catch (const std::exception& e) - { - ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what(); - } - catch (...) - { - ARMARX_ERROR << "Failed to init class segment for unknown reason."; - } + }); + + } void ObjectMemory::onConnectComponent() diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp index 91b9337bc31aed4d0ab00772b78d30765b64bdbb..9f94b015356194d3f31887bccd1852066a99a35c 100644 --- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp +++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp @@ -26,7 +26,7 @@ namespace armarx::armem::articulated_object if (not description) { - ARMARX_ERROR << "Unknown object " << name; + ARMARX_WARNING << "Unknown object " << name; return std::nullopt; }