agi*_*liq 4 python exception-handling
例如,以下是django.templates.loader.app_directories.py中的一些代码.[1]
try:
yield safe_join(template_dir, template_name)
except UnicodeDecodeError:
# The template dir name was a bytestring that wasn't valid UTF-8.
raise
Run Code Online (Sandbox Code Playgroud)
如果你抓住一个例外只是为了重新提升它,它的用途是什么?
[1] http://code.djangoproject.com/browser/django/trunk/django/template/loaders/app_directories.py
sth*_*sth 17
在您链接的代码中是另一个额外的异常处理程序:
try:
yield safe_join(template_dir, template_name)
except UnicodeDecodeError:
# The template dir name was a bytestring that wasn't valid UTF-8.
raise
except ValueError:
# The joined path was located outside of template_dir.
pass
Run Code Online (Sandbox Code Playgroud)
由于UnicodeDecodeError
是子类ValueError
,第二个异常处理程序会导致任何UnicodeDecodeError
被忽略.看起来这不是预期的效果,并且避免它UnicodeDecodeError
由第一个处理程序显式处理.因此,如果两个处理程序不在一起,ValueError
则只能忽略它们UnicodeDecodeError
.
归档时间: |
|
查看次数: |
272 次 |
最近记录: |