作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
例如,这里有一些来自 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
不是 UnicodeDecodeError
,则两个处理程序一起使用时才会被忽略。
关于python - 只加薪的异常(exception)有什么用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1774792/
我是一名优秀的程序员,十分优秀!