From 04b6b201896e1404ab72442514bceb48cb933fa2 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Mon, 18 Aug 2025 18:29:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=93=E5=AD=98=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=99=A8=E4=B8=AD=E7=9A=84=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将捕获的异常类型从 `TypeError` 和 `OSError` 修改为 `Exception`,以涵盖更多潜在错误。 - 增强日志记录,提供更清晰的类名和简化的错误信息,便于调试和问题追踪。 --- src/common/cache_manager.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/common/cache_manager.py b/src/common/cache_manager.py index 78bb92454..7d5f9ea5b 100644 --- a/src/common/cache_manager.py +++ b/src/common/cache_manager.py @@ -132,9 +132,13 @@ class CacheManager: try: source_code = inspect.getsource(tool_class) code_hash = hashlib.md5(source_code.encode()).hexdigest() - except (TypeError, OSError) as e: + except Exception as e: code_hash = "unknown" - logger.warning(f"无法获取 {tool_class.__name__} 的源代码,代码哈希将为 'unknown'。错误: {e}") + # 获取更清晰的类名 + class_name = getattr(tool_class, '__name__', str(tool_class)) + # 简化错误信息 + error_msg = str(e).replace(str(tool_class), class_name) + logger.warning(f"无法获取 {class_name} 的源代码,代码哈希将为 'unknown'。原因: {error_msg}") try: sorted_args = json.dumps(function_args, sort_keys=True) except TypeError: