仅加薪的例外有任何用处吗?
例如,这是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
如果您发现一个异常只是为了提出它,它有什么作用?
[1]
http://code.djangoproject.com/browser/django/trunk/django/template/loaders/app_directories.py
-
在链接到的代码中,还有另一个附加的异常处理程序:
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
由于
UnicodeDecodeError
是的子类ValueError
,因此第二个异常处理程序将导致UnicodeDecodeError
忽略任何异常。看起来这不是预期的效果,为避免这种情况UnicodeDecodeError
,第一个处理程序将对其进行显式处理。因此,两个处理程序一起使用时ValueError
,只有a不是时,才会忽略UnicodeDecodeError
。