Add try-catch for sensord_start function 50/311650/1 accepted/tizen_7.0_unified tizen_7.0 accepted/tizen/7.0/unified/20240524.070634
authorSangYoun Kwak <sy.kwak@samsung.com>
Thu, 23 May 2024 05:19:38 +0000 (14:19 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Thu, 23 May 2024 05:21:34 +0000 (14:21 +0900)
The capi function sensor_listener_start may throw std::invalid_argument
but this function can be used in C(which cannot handle thrown
exceptions) so a try-catch statement is added to handle this exception.

Change-Id: Ie5fd0d751e86697e08ea55f23c764bf224791322
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
src/sensor.cpp

index df6927e2ca32264c5a4a705b25086fe6f2a8b044..12728093ae10982b72a696fb73914cbd3a46e9cb 100644 (file)
@@ -469,8 +469,13 @@ int sensor_listener_start(sensor_listener_h listener)
        id = listener->id;
        pause = listener->pause;
 
-       if (!sensord_start(id, 0))
+       try {
+               if (!sensord_start(id, 0))
+                       return SENSOR_ERROR_OPERATION_FAILED;
+       } catch (std::invalid_argument &e) {
+               _E("sensord_start failed: %s", e.what());
                return SENSOR_ERROR_OPERATION_FAILED;
+       }
 
        if (sensord_listener_set_attribute_int(id, SENSOR_ATTRIBUTE_PAUSE_POLICY, pause) < 0)
                return SENSOR_ERROR_OPERATION_FAILED;