django模板标记中的沉默异常

时间:2017-03-06 17:12:45

标签: django exception-handling django-templates

我正在编写一个非常简单的模板标记,它返回应用程序的详细名称:

@register.simple_tag
def get_verbose_name(app_name):
    return apps.get_app_config(app_name).verbose_name

根据文档,我应该返回默认值,如果可能的话不抛出异常。如果问题不存在,我应该处理异常并返回None或抛出吗?

1 个答案:

答案 0 :(得分:0)

你应该总是try catch可能的异常(即处理它们)在python中,当然还有Django!这是一个很好的做法。

所以,我要做的是:

@register.simple_tag
def get_verbose_name(app_name):
    try:
        verbose_name = apps.get_app_config(app_name).verbose_name
    except LookupError:
        return 'No app for {}'.format(app_name)
    else:
        return verbose_name