Replace throw with log error message.
Replace throw with log error message and return.
When run into error, log error message but not crash
smbios service as throw did.
Tested:
smbiosmdrv2app is working well.
Change-Id: Ia2d40997987a0c84a613568d65f93006043459d0
Signed-off-by: Kuiying Wang <kuiying.wang@intel.com>
diff --git a/src/mdrv2.cpp b/src/mdrv2.cpp
index 9a73c65..c1bc09d 100644
--- a/src/mdrv2.cpp
+++ b/src/mdrv2.cpp
@@ -35,8 +35,9 @@
if (dirIndex > smbiosDir.dirEntries)
{
responseDir.push_back(0);
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::
- InvalidParameter();
+ phosphor::logging::log<phosphor::logging::level::ERR>(
+ "getDirectoryInformation: Invalid Parameter");
+ return responseDir;
}
responseDir.push_back(mdr2Version);
responseDir.push_back(smbiosDir.dirVersion);
@@ -117,8 +118,6 @@
{
phosphor::logging::log<phosphor::logging::level::ERR>(
"smbios is not ready for update");
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::
- UpdateInProgress();
}
return offer;
}
@@ -173,8 +172,9 @@
if (idIndex >= maxDirEntries)
{
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::
- InvalidParameter();
+ phosphor::logging::log<phosphor::logging::level::ERR>(
+ "getDataInformation: Invalid Parameter");
+ return responseInfo;
}
for (uint8_t index = 0; index < sizeof(DataIdStruct); index++)
@@ -253,15 +253,13 @@
{
phosphor::logging::log<phosphor::logging::level::ERR>(
"Send Dir info failed - input parameter invalid");
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::
- InvalidParameter();
+ return teminate;
}
if (dirEntry.size() < sizeof(Mdr2DirEntry))
{
phosphor::logging::log<phosphor::logging::level::ERR>(
"Directory size invalid");
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::
- InvalidParameter();
+ return teminate;
}
if (dirVersion == smbiosDir.dirVersion)
{
@@ -307,8 +305,9 @@
{
if (idIndex >= maxDirEntries)
{
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::
- InvalidParameter();
+ phosphor::logging::log<phosphor::logging::level::ERR>(
+ "sendDataInformation: Invalid Parameter");
+ return false;
}
int entryChanged = 0;
if (smbiosDir.dir[idIndex].common.dataSetSize != dataLen)
@@ -341,8 +340,7 @@
{
phosphor::logging::log<phosphor::logging::level::ERR>(
"Length of dataInfo invalid");
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::
- InvalidParameter();
+ return -1;
}
std::array<uint8_t, 16> arrayDataInfo;
@@ -364,7 +362,9 @@
return index;
}
}
- throw sdbusplus::xyz::openbmc_project::Smbios::MDR_V2::Error::InvalidId();
+ phosphor::logging::log<phosphor::logging::level::ERR>(
+ "findIdIndex: Invalid ID");
+ return -1;
}
uint8_t MDR_V2::directoryEntries(uint8_t value)
@@ -546,7 +546,9 @@
if (dataIn == nullptr)
{
- throw std::runtime_error("Data not populated");
+ phosphor::logging::log<phosphor::logging::level::ERR>(
+ "Data not populated");
+ return ret;
}
do
@@ -617,7 +619,8 @@
return ret;
}
- throw std::invalid_argument("Invalid record type");
+ phosphor::logging::log<phosphor::logging::level::ERR>(
+ "Invalid record type");
return ret;
}