type(e)
不返回字符串。注意
(<class 'django.contrib.auth.models.User.DoesNotExist'> !=
'django.contrib.auth.models.User.DoesNotExist')
这个
if
条件应该是
if type(e) == django.contrib.auth.models.User.DoesNotExist
或者更好,
if isinstance(e, django.contrib.auth.models.User.DoesNotExist)
但是,正确的解决方案是使用多个
except
条款
username = 'myuser'
try:
user = User.objects.get(username=username)
print(user)
except User.DoesNotExist:
# do something
print('No such user')
except SomeOtherException:
# do a different thing
except Foo:
# do bar
请注意,您还可以将不同异常类型的处理组合到相同的
除了
条款:
try:
# some bad code
except (User.DoesnotExist, SomeOtherException):
# error handling code
参考
1。
Python: One Try Multiple Except