在较新版本的 Elasticsearch Python 客户端中,ElasticsearchException
已经被移除,因此您无法再从 elasticsearch
模块中导入它。如果您需要捕获 Elasticsearch 客户端引发的异常,可以使用更通用的异常类,例如 elasticsearch.exceptions.RequestError
或 elasticsearch.exceptions.TransportError
。
下面是如何修改您的代码以处理异常的示例:
from elasticsearch import Elasticsearch
from elasticsearch.exceptions import RequestError, TransportError
# 创建 Elasticsearch 客户端
es = Elasticsearch()
# 使用 try-except 块来处理 Elasticsearch 客户端引发的异常
try:
result = es.indices.create(index='news', ignore=400)
print(result)
except RequestError as e:
print(f"Request error occurred: {e}")
except TransportError as e:
print(f"Transport error occurred: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
在这个示例中,我们从 elasticsearch.exceptions
模块导入 RequestError
和 TransportError
异常类,并在 try-except
块中捕获这些异常。这将允许您更精确地处理不同类型的 Elasticsearch 异常。如果出现未知异常,它将由通用的 Exception
类捕获。
请根据您的代码逻辑和需求来调整异常处理部分。