我有以下代码段:
def require(name: str) -> Any:
logger.info(f"Recipe required: {name!r}")
entries = []
for entry in iter_entry_points('recipe'):
if entry.name == name:
logger.debug(f"Found entry for recipe {name!r}: {entry} at {entry.dist}")
entries.append(entry)
if not entries:
logger.error(f"Recipe not found: {name!r}")
raise RequireError(f"could not find recipe {name!r}")
if len(entries) > 1:
dists = []
for entry in entries:
logger.error(f"Ambiguous recipe: {name!r} defined in {entry.dist!r}")
dists.append(f'* {entry.dist!r}\n')
raise RequireError(f"ambiguous recipe {name!r}! conflicting distributions:\n{''.join(dists)}")
entry, = entries
logger.info(f"Recipe found: {name!r}")
...skipped
正如您所看到的,当我不符合某些条件时,我会提出错误。因为我跟着"快速失败"原则,这实际上杀死了应用程序。在提升之前另外记录这些事情是否有意义?