_execute_command() вызывает ошибку MQTTBrokerError.
Зачем мне нужен блок try/Exception в публикации() для распространения ошибки MQTTBrokerError в код который вызывает публикацию()? По результатам тестирования он распространяется с блоком try/Exception и не обходится без него. Без него блокfinally в _execute_command() не выполняется.
def publish(self, topic: str, message: str, qos=1):
qos_level = MQTTCommandHandler.QoSLevel(qos)
try:
self._execute_command(
self._command_handler.at_mqtt_publish,
f"Failed to publish message to topic {topic}",
topic, message, qos_level
)
except Exception as e:
raise e
def _execute_command(self, command_func, error_message, *args, **kwargs):
try:
command_func(*args, **kwargs)
self._command_handler.await_command()
with self._command_handler.lock:
broker_error = self._command_handler.broker_error
if broker_error:
error_code = self._command_handler.at_get_command_error()
raise MQTTBrokerError(f"{error_message}: MQTT Broker Error (code: {error_code})")
else:
logger.info(f"{command_func.__name__.replace('at_', '').replace('_', ' ').capitalize()} succeeded")
except Exception as e:
logger.error(f"{error_message}: {str(e)}")
logger.error("Traceback: %s", traceback.format_exc())
raise e
finally:
print("in _execute_command finally")
with self._command_handler.lock:
#in success case, command_in_progress is set to None in the URC handler
self._command_handler.command_in_progress = None
Подробнее здесь: https://stackoverflow.com/questions/791 ... lling-code
Зачем мне этот блок try/кроме для передачи e в вызывающий код? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу написать блок «try»/«кроме», который перехватывает все исключения?
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу написать блок `try`/`, кроме «блока», который запечатлевает все исключения?
Anonymous » » в форуме Python - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-
-
-
WPF: В чем разница между try...finally и try..catch..finally в WPF, MVVM? [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 42 Просмотры
-
Последнее сообщение Anonymous
-