Что такое универсальный класс исключений для обработки хранения файлов в 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