我需要捕获与 Django 的文件存储 API 相关的所有异常,可能是用于读取或写入等。这里的问题是该 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
子句中检查哪些异常类?