5👍
✅
You can nest try
/except
:
try:
email_list = EmailList.objects.get(domain=(cd['email'].split('@')[1]))
except:
try:
email_list = EmailList.objects.get(email=cd['email'])
except:
...do something else
If you are just using these try/except to do a simple test, it’s worthwhile to wrap the try/except:
def get_or_none(model, **kwargs):
try:
return model.objects.get(**kwargs)
except model.DoesNotExist:
return None
Which gives you slightly more readable code:
if get_or_none(EmailList, domain='domain.com'):
...do something
elif get_or_none(EmailList, domain='domain.com'):
...do something
else:
...do something
As Ignacio mentioned in his answer you should always be explicit and catch only the exceptions you intend.
8👍
Nested try
/except
blocks. And don’t use a bare except
; catch only the exceptions you can handle.
- [Django]-Serialize a list of objects in json in Django
- [Django]-Hiding save buttons in admin if all fields are read only
Source:stackexchange.com