瀏覽代碼

better exception handling

Blake Blackshear 4 年之前
父節點
當前提交
75d62096a6
共有 2 個文件被更改,包括 17 次插入8 次删除
  1. 12 7
      frigate/app.py
  2. 5 1
      frigate/mqtt.py

+ 12 - 7
frigate/app.py

@@ -147,17 +147,22 @@ class FrigateApp():
 
     def start(self):
         self.init_logger()
-        self.ensure_dirs()
         try:
-            self.init_config()
+            self.ensure_dirs()
+            try:
+                self.init_config()
+            except Exception as e:
+                logger.error(f"Error parsing config: {e}")
+                self.log_process.terminate()
+                sys.exit(1)
+            self.set_log_levels()
+            self.init_queues()
+            self.init_database()
+            self.init_mqtt()
         except Exception as e:
-            logger.error(f"Error parsing config: {e}")
+            logger.error(e)
             self.log_process.terminate()
             sys.exit(1)
-        self.set_log_levels()
-        self.init_queues()
-        self.init_database()
-        self.init_mqtt()
         self.start_detectors()
         self.start_detected_frames_processor()
         self.start_camera_processors()

+ 5 - 1
frigate/mqtt.py

@@ -27,6 +27,10 @@ def create_mqtt_client(config: MqttConfig):
     client.will_set(config.topic_prefix+'/available', payload='offline', qos=1, retain=True)
     if not config.user is None:
         client.username_pw_set(config.user, password=config.password)
-    client.connect(config.host, config.port, 60)
+    try:
+        client.connect(config.host, config.port, 60)
+    except Exception as e:
+        logger.error(f"Unable to connect to MQTT server: {e}")
+        raise
     client.loop_start()
     return client