Приветствую. Почему в этом фрагменте кода используется базовое исключение? Это же вроде как антипаттерн. Будут перехватываться почти все исключения.
try:
# load() could spot a truncated JPEG, but it loads the entire
# image in memory, which is a DoS vector. See #3848 and #18520.
image = Image.open(file)
# verify() must be called immediately after the constructor.
image.verify()
# Annotating so subclasses can reuse it for their own validation
f.image = image
# Pillow doesn't detect the MIME type of all formats. In those
# cases, content_type will be None.
f.content_type = Image.MIME.get(image.format)
except Exception as exc:
# Pillow doesn't recognize it as an image.
raise ValidationError(
self.error_messages['invalid_image'],
code='invalid_image',
) from exc
if hasattr(f, 'seek') and callable(f.seek):
f.seek(0)
return f
Это фрагмент исходников из Django, вот ссылка на код
django/django/forms/fields.py/
Почему авторы используют такой подход? Может я, что-то неправильно понимаю?