diff --git a/monitor/power_interface.cpp b/monitor/power_interface.cpp
index 8d9c808..f6589b8 100644
--- a/monitor/power_interface.cpp
+++ b/monitor/power_interface.cpp
@@ -15,6 +15,7 @@
  */
 #include "power_interface.hpp"
 
+#include "logging.hpp"
 #include "sdbusplus.hpp"
 
 namespace phosphor::fan::monitor
@@ -45,8 +46,13 @@
             std::vector<
                 std::pair<std::string, std::variant<std::string, uint64_t>>>());
     }
-    catch (const sdbusplus::exception::exception&)
-    {}
+    catch (const std::exception& e)
+    {
+        getLogger().log(
+            fmt::format("Caught exception while creating BMC dump: {}",
+                        e.what()),
+            Logger::error);
+    }
 }
 
 void PowerInterface::hardPowerOff()
diff --git a/monitor/power_off_action.hpp b/monitor/power_off_action.hpp
index cada348..c833038 100644
--- a/monitor/power_off_action.hpp
+++ b/monitor/power_off_action.hpp
@@ -110,8 +110,13 @@
                 std::vector<std::pair<std::string,
                                       std::variant<std::string, uint64_t>>>());
         }
-        catch (const sdbusplus::exception::exception&)
-        {}
+        catch (const std::exception& e)
+        {
+            getLogger().log(
+                fmt::format("Caught exception while creating BMC dump: {}",
+                            e.what()),
+                Logger::error);
+        }
     }
 
     /**
diff --git a/monitor/system.cpp b/monitor/system.cpp
index 0447cfa..9da828b 100644
--- a/monitor/system.cpp
+++ b/monitor/system.cpp
@@ -537,8 +537,13 @@
             std::vector<
                 std::pair<std::string, std::variant<std::string, uint64_t>>>());
     }
-    catch (const sdbusplus::exception::exception&)
-    {}
+    catch (const std::exception& e)
+    {
+        getLogger().log(
+            fmt::format("Caught exception while creating BMC dump: {}",
+                        e.what()),
+            Logger::error);
+    }
 }
 
 } // namespace phosphor::fan::monitor
diff --git a/sensor-monitor/shutdown_alarm_monitor.cpp b/sensor-monitor/shutdown_alarm_monitor.cpp
index 77281b6..386b41e 100644
--- a/sensor-monitor/shutdown_alarm_monitor.cpp
+++ b/sensor-monitor/shutdown_alarm_monitor.cpp
@@ -368,8 +368,13 @@
             std::vector<
                 std::pair<std::string, std::variant<std::string, uint64_t>>>());
     }
-    catch (const sdbusplus::exception::exception&)
-    {}
+    catch (const std::exception& e)
+    {
+        getLogger().log(
+            fmt::format("Caught exception while creating BMC dump: {}",
+                        e.what()),
+            Logger::error);
+    }
 }
 
 void ShutdownAlarmMonitor::timerExpired(const AlarmKey& alarmKey)
