Irv1n
Иногда с прибора прилетают битые данные и возникает ошибка: value error could not convert string to float и моя програма крашится. Как лучше всего обработать данную ошибку? Если прилетают битые данные то они отбрасываются и функция заново получает данные с прибора?
Надо оставить функцию чистой от проверок. А на ошибку проверять снаружи.
Пример
>>> import random
>>>
>>> def func():
... n = random.randint(1, 5)
... if n > 4:
... print('ok', n)
... else:
... print('fail', n)
... raise ValueError
...
>>> while True:
... try:
... func()
... except ValueError:
... continue
... break
...
fail 4
fail 4
fail 3
fail 1
fail 3
fail 1
fail 4
fail 3
fail 4
fail 1
fail 1
fail 3
fail 2
ok 5
>>>
А если ты будешь внутри функции проверять, то когда тебе попадётся исправное устройство, оно будет многократно проверяться на ошибки, которых там заведомо нет. Это будет тратить время и память впустую.