diff --git a/volk_load.py b/volk_load.py index e77090e..a780cb2 100644 --- a/volk_load.py +++ b/volk_load.py @@ -2,6 +2,7 @@ import os import json import time import traceback +import socket from datetime import datetime from urllib.request import urlopen from urllib.error import URLError, HTTPError @@ -160,13 +161,22 @@ def load_categories(): try: response = urlopen(desc_url) log_message("urlopen успешно выполнен") - except (URLError, HTTPError, OSError) as e: + except (URLError, HTTPError, OSError, socket.gaierror, socket.timeout, ConnectionError) as e: + log_message("ошибка urlopen") error_msg = f"Ошибка сетевого подключения при запросе описания категории {category_id} из {desc_url}: {type(e).__name__}: {e}" log_message(error_msg, "ERROR") traceback_str = traceback.format_exc() log_message(f"Трассировка сетевой ошибки для категории {category_id}:\n{traceback_str}", "ERROR") # Пропускаем эту категорию и продолжаем обработку continue + except Exception as e: + # Перехватываем любые другие исключения, которые могут возникнуть при urlopen + error_msg = f"Неожиданная ошибка при запросе описания категории {category_id} из {desc_url}: {type(e).__name__}: {e}" + log_message(error_msg, "ERROR") + traceback_str = traceback.format_exc() + log_message(f"Трассировка неожиданной ошибки для категории {category_id}:\n{traceback_str}", "ERROR") + # Пропускаем эту категорию и продолжаем обработку + continue try: with response: