Fix potential map::at error

There are some potential errors, when using the map::at method,
the process may hang due to out of bounds. so the exception should
be caught.

Also, use the map::contains method of C++20 instead of map::find.

Tested: built pldm successfully and worked.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: Ia5d7dea906e5c598072c08b27387195ef1201839
diff --git a/libpldmresponder/platform_numeric_effecter.hpp b/libpldmresponder/platform_numeric_effecter.hpp
index 62228e0..8aeaaa1 100644
--- a/libpldmresponder/platform_numeric_effecter.hpp
+++ b/libpldmresponder/platform_numeric_effecter.hpp
@@ -251,21 +251,30 @@
         return rc;
     }
 
-    const auto& [dbusMappings, dbusValMaps] =
-        handler.getDbusObjMaps(effecterId);
-    DBusMapping dbusMapping{
-        dbusMappings[0].objectPath, dbusMappings[0].interface,
-        dbusMappings[0].propertyName, dbusMappings[0].propertyType};
     try
     {
-        dBusIntf.setDbusProperty(dbusMapping, dbusValue.value());
+        const auto& [dbusMappings, dbusValMaps] =
+            handler.getDbusObjMaps(effecterId);
+        DBusMapping dbusMapping{
+            dbusMappings[0].objectPath, dbusMappings[0].interface,
+            dbusMappings[0].propertyName, dbusMappings[0].propertyType};
+        try
+        {
+
+            dBusIntf.setDbusProperty(dbusMapping, dbusValue.value());
+        }
+        catch (const std::exception& e)
+        {
+            std::cerr << "Error setting property, ERROR=" << e.what()
+                      << " PROPERTY=" << dbusMapping.propertyName
+                      << " INTERFACE=" << dbusMapping.interface << " PATH="
+                      << dbusMapping.objectPath << "\n";
+            return PLDM_ERROR;
+        }
     }
-    catch (const std::exception& e)
+    catch (const std::out_of_range& e)
     {
-        std::cerr << "Error setting property, ERROR=" << e.what()
-                  << " PROPERTY=" << dbusMapping.propertyName << " INTERFACE="
-                  << dbusMapping.interface << " PATH=" << dbusMapping.objectPath
-                  << "\n";
+        std::cerr << "Unknown effecter ID : " << effecterId << e.what() << '\n';
         return PLDM_ERROR;
     }