diff --git a/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp b/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp
index 2539b6b..a3fe9c8 100644
--- a/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp
+++ b/src/ibm/hypervisor-network-mgr-src/hyp_network_manager.cpp
@@ -33,13 +33,7 @@
         "org.freedesktop.DBus.Properties", "Get");
     properties.append(interface);
     properties.append(kw);
-    auto result = bus.call(properties);
-
-    if (result.is_method_error())
-    {
-        throw std::runtime_error("Get api failed");
-    }
-    return result;
+    return bus.call(properties);
 }
 
 void HypNetworkMgr::setBIOSTableAttr(
@@ -109,12 +103,17 @@
 
         mapperCall.append(biosMgrObj, depth, interfaces);
 
-        auto mapperReply = bus.call(mapperCall);
-        if (mapperReply.is_method_error())
-        {
-            lg2::error("Error in mapper call");
-            elog<InternalFailure>();
-        }
+        auto mapperReply = [&]() {
+            try
+            {
+                return bus.call(mapperCall);
+            }
+            catch (const sdbusplus::exception::SdBusError& e)
+            {
+                lg2::error("Error in mapper call");
+                elog<InternalFailure>();
+            }
+        }();
 
         ObjectTree objectTree;
         mapperReply.read(objectTree);
diff --git a/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.cpp b/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.cpp
index 853ee11..194bb19 100644
--- a/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.cpp
+++ b/src/ibm/hypervisor-network-mgr-src/hyp_sys_config.cpp
@@ -75,12 +75,7 @@
                                           BIOS_MGR_INTF, "SetAttribute");
     properties.append("vmi_hostname");
     properties.append(std::variant<std::string>(name));
-    auto result = bus.call(properties);
-
-    if (result.is_method_error())
-    {
-        throw std::runtime_error("Set attribute api failed");
-    }
+    bus.call(properties);
 }
 
 } // namespace network
diff --git a/src/inventory_mac.cpp b/src/inventory_mac.cpp
index 8d38c37..67e8dff 100644
--- a/src/inventory_mac.cpp
+++ b/src/inventory_mac.cpp
@@ -91,12 +91,17 @@
 
     mapperCall.append(invRoot, depth, interfaces);
 
-    auto mapperReply = bus.call(mapperCall);
-    if (mapperReply.is_method_error())
-    {
-        lg2::error("Error in mapper call");
-        elog<InternalFailure>();
-    }
+    auto mapperReply = [&]() {
+        try
+        {
+            return bus.call(mapperCall);
+        }
+        catch (const sdbusplus::exception::SdBusError& e)
+        {
+            lg2::error("Error in mapper call");
+            elog<InternalFailure>();
+        }
+    }();
 
     ObjectTree objectTree;
     mapperReply.read(objectTree);
@@ -145,14 +150,19 @@
 
     method.append(invNetworkIntf, "MACAddress");
 
-    auto reply = bus.call(method);
-    if (reply.is_method_error())
-    {
-        lg2::error(
-            "Failed to get MACAddress for path {DBUS_PATH} interface {DBUS_INTF}",
-            "DBUS_PATH", objPath, "DBUS_INTF", invNetworkIntf);
-        elog<InternalFailure>();
-    }
+    auto reply = [&]() {
+        try
+        {
+            return bus.call(method);
+        }
+        catch (const sdbusplus::exception::SdBusError& e)
+        {
+            lg2::error(
+                "Failed to get MACAddress for path {DBUS_PATH} interface {DBUS_INTF}",
+                "DBUS_PATH", objPath, "DBUS_INTF", invNetworkIntf);
+            elog<InternalFailure>();
+        }
+    }();
 
     std::variant<std::string> value;
     reply.read(value);
