Обработка ошибок с помощью w1thermsensor на Raspberry Pi - PullRequest
0 голосов
/ 16 марта 2019

Я использую w1thermsensor на Raspberry Pi.Это работает, но я хочу сделать мой код устойчивым к ошибкам, таким как сбой оборудования, отключение датчика и т. Д.

Похоже, что никакой конкретной помощи в репозитории Github нет (хотя я вижу,из кода, который может вызывать исключения), и я не нашел никаких примеров ошибок онлайн-обработки.

Мой код:

try: 
    sensor = W1ThermSensor() # Assumes just one sensor available 
    sensor_detect = "Detected" 
except: 
    sensor_detect = "Detect Error" 
if sensor_detect == "Detected": 
    try: 
        air_temperature = sensor.get_temperature() 
    except: 
        air_temperature = "Get temperature Error"

Изначально у меня не было попыток проверки / кроме провероки получить сбои, если датчик либо отсутствует, либо удален.Но я бы хотел быть более точным, используя условия ошибок, которые возвращает библиотека.Существует ли краткий список исключений, которые могут возникнуть / пример кода для обработки ошибок?

1 Ответ

0 голосов
/ 16 июня 2019

Исключения, которые могут быть вызваны пакетом w1thermsensor, задокументированы в строках документации методов. Например. для get_temperature():

>>> help(w1thermsensor.core.W1ThermSensor.get_temperature)
Help on function get_temperature in module w1thermsensor.core:

get_temperature(self, unit=1)
    Returns the temperature in the specified unit

    :param int unit: the unit of the temperature requested

    :returns: the temperature in the given unit
    :rtype: float

    :raises UnsupportedUnitError: if the unit is not supported
    :raises NoSensorFoundError: if the sensor could not be found
    :raises SensorNotReadyError: if the sensor is not ready yet
...