Что такое универсальный класс исключений для обработки хранения файлов в Django?

Мне нужно перехватить все исключения, связанные с API хранилища файлов Django, может ли это быть для чтения или записи и т. Д. Проблема в том, что в этом API не определен общий класс исключений. Например, при использовании FileSystemStorage (по умолчанию), выбрасывается исключение IOError, но если я использую удаленное хранилище, как S3? Я знаю, что могу просто добавить несколько общих исключений Boto, но я хочу, чтобы этот код оставался универсальным и отделенным от любой серверной части хранилища, которую я выберу позже.

Вот пример кода для объяснения ситуации:

import contextlib

class SomeForm(forms.ModelForm):
    textfield = forms.CharField()

    class Meta:
        model = CSSTemplate

    def __init__(self, *args, **kwargs):
        super(SomeForm, self).__init__(*args, **kwargs)

        if not self.is_bound and self.instance and self.instance.file_field:
            try:
                with contextlib.closing(self.instance.file_field.file) as file_obj:
                    file_obj.open('r')
                    self['textfield'].field.initial = file_obj.read()
            except (IOError, ):  # <-- ???
                self.instance.file_field = ''

Какие классы исключений я должен проверить в except статья?

1 ответ

try:

except OSError:
   //raise if file is already exist

except IOError:
   // is not a directory 

except ValueError:
   //raise if someone is attempted to access then denied
Другие вопросы по тегам