Код: Выделить всё
class EntityRetrieval(object):
def __init__(self,
entity_kb_path: str):
"""
Args
entity_kb_path: path of entity knowledge base (string) which is json format
"""
try:
entity_kb = json.load(open(entity_kb_path,'r'))
except Exception as e:
logging.error(e)
# Don't use entity type
entity_dict = {}
for entity_type, entities in entity_kb.items():
for entity_id, list_entity_strings in entities.items():
entity_dict[entity_id] = list_entity_strings
- Действительно ли необходимо перехватывать ошибки, чтобы предотвратить сбой? В приведенном выше коде объектent_kb_path должен быть файлом json. Возможно, произошла ошибка неправильного формата файла или ошибка «не найден файл». И я пытаюсь выдать сообщение об ошибке пользователю, когда он не передает правильный аргумент, вместо того, чтобы выдать сбой.
- Но когда я использую try catch, инициализация все еще выполняется и возвращает экземпляр, я думаю это нелогично, я имею в виду, что инициализация должна прекратиться, верно?
- Если попытаться, кроме помещает туда, то произойдет что-то странное, что переменнаяentity_kb может быть не объявлена. Но код блока процесса, стоящий за этим, слишком длинный. Возможно, я не захочу помещать его в блок try
Подробнее здесь: https://stackoverflow.com/questions/783 ... r-occurs-i