monitor: Allow missing sensors

Don't count sensors that don't exist as nonfunctional.  Let some
other application decide if missing sensors are a problem or not.

Change-Id: Ie3d438c92df16bfd86ddc86db8a9dd143bf2cfb0
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/monitor/tach_sensor.cpp b/monitor/tach_sensor.cpp
index 0ec52ba..a4ebcd9 100644
--- a/monitor/tach_sensor.cpp
+++ b/monitor/tach_sensor.cpp
@@ -77,11 +77,21 @@
     _timer(events, [this, &fan](){ fan.timerExpired(*this); })
 {
     //Load in starting Target and Input values
-    readProperty(FAN_SENSOR_VALUE_INTF,
-                 FAN_VALUE_PROPERTY,
-                 _name,
-                 _bus,
-                 _tachInput);
+
+    try
+    {
+        // Use getProperty directly to allow a missing sensor object
+        // to abort construction.
+        _tachInput = util::SDBusPlus::getProperty<decltype(_tachInput)>(
+                _bus,
+                _name,
+                FAN_SENSOR_VALUE_INTF,
+                FAN_VALUE_PROPERTY);
+    }
+    catch (std::exception& e)
+    {
+        throw InvalidSensorError();
+    }
 
     if (_hasTarget)
     {