【发布时间】:2017-06-25 11:51:31
【问题描述】:
我在python 中有一些异常处理代码,其中可以引发两个异常,第一个是第二个的“超集”。
即以下代码总结了我需要做的事情(并且工作正常)
try:
normal_execution_path()
except FirstError:
handle_first_error()
handle_second_error()
except SecondError:
handle_second_error()
但这需要我将所有内容抽象为独立的函数,以使代码保持干净和可读。我正在寻找一些更简单的语法,例如:
try:
normal_execution_path()
except FirstError:
handle_first_error()
raise SecondError
except SecondError:
handle_second_error()
但这似乎不起作用(SecondError 如果在此块内引发,则不会被重新捕获)。不过在这个方向有什么可行的吗?
【问题讨论】:
-
你不能,除非你指定一个额外的处理程序。如果错误是
FirstError或SecondError的实例,则在此处进行分支似乎更好。
标签: python python-3.x exception-handling