如果以下两个代码块之间存在差异,我真的很好奇......
# block 1
def a_function():
try:
b_function()
except Exception:
raise
def b_function():
raise Exception("Oh nooooo!")
和...
# block 2
def a_function():
b_function()
def b_function():
raise Exception("Oh noooooo!")
我知道第一次重新提升了从Exception
中抓取的b_function
,但这与第二个区块有什么不同,我只是让Exception
上升到后来赶上或停止该计划?如果它们具有相同的效果,则是一种格式或多或少的“pythonic”#39;比另一个?
What is the point of re-raising exceptions?提出了类似的问题,但他们没有提到这会对堆栈跟踪产生什么影响。第一个块是否会更改'来源'错误到a_function
或Exception
保留来自b_function
的来源?