我正在学习python try:except子句
我有以下调用层次结构
def A():
try:
B(some_args)
except Exception as e:
print (repr(e))
B实现如下
def B(some_args):
C(some_args)
请注意,除了内部B之外没有尝试我尝试除C内部以外的尝试
def C():
try:
dothis()
except exception as e:
raise e
我的问题是,如果调用层次结构中的一个函数(在这种情况下为B)
A()
calls B()
calls C()
没有try except子句,A还会收到C()中引发的异常吗?
是的,它会的。 try / catch块将捕获try块内抛出的任何异常,无论该位置抛出的位置有多深。
此外,您可以在不同级别捕获特定异常,因此可能是B中的catch块可能捕获一个抛出异常,而A中的catch块将捕获不同的异常,每个异常都可能抛出C或甚至其他一些异常C调用的函数等。例如:
catch FileNotFoundException as ex:
会捕获FileNotFoundException,但不会捕获其他异常