0
Django의 File Storage API와 관련된 모든 예외를 catch해야합니다. 읽기 또는 쓰기 등이 될 수 있습니다. 여기에는 해당 API에 정의 된 일반 예외 클래스가 없습니다. 예를 들어, FileSystemStorage
(기본값)을 사용하면 던져진 예외는 IOError
이지만 S3와 같은 원격 저장소를 사용하고 있습니까? 몇 가지 일반적인 Boto 예외를 추가 할 수는 있지만이 코드를 일반화하고 나중에 선택할 백엔드 저장소와 분리해야합니다.Django에서 파일 저장소 처리에 대한 포괄적 인 Exception 클래스는 무엇입니까?
이 상황을 설명하는 샘플 코드는 다음과 같습니다
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
절에 어떤 예외 클래스를 확인해야합니까?
이것은 'except : pass'를 사용하는 것과 동일하므로 꼭 피하고 싶습니다. 모든 예외 클래스는 (모든 클래스가'Exception'을 서브 클래스로 만들기 때문에) 갇히게 될 것이고, 따라서 내가 침묵시키고 자하는 오류의 종류에 대해 명시 적으로 설명하지 않을 것입니다. –
ok 다시 문제를 검색합니다 – catherine
@Mandx 답변 업데이트 – catherine