0

如果找到主键,此代码将打印 'a' 'b' 'e'。如果不是,则仅打印“a”。什么会导致异常被吞下?

def foo(request, e_pk):
    try:
        pprint('a')
        facet = models.EntryFacet.objects.get(pk=e_pk)
        pprint('b')
    except models.EntryFacet.DoesNotExist:
        pprint('c ' + sys.exc_info()[0])
    except ObjectDoesNotExist:
        pprint('d ' + sys.exc_info()[0])
    pprint('e')
    return render_to_response(...)

环境:django 1.3,Linux。settings.py 有 DEBUG = True TEMPLATE_DEBUG = DEBUG

4

1 回答 1

1

当你尝试

print('c ' + sys.exc_info()[0])

它引发 TypeError: cannot concatenate 'str' and 'type' objects 所以你应该使用:

print('c %s' % sys.exc_info()[0])

也看看get_object_or_404

于 2012-08-21T08:54:32.723 回答