Python 中的嵌套调用 - 我需要在所有函数中尝试 except 吗?
Nested calls in Python - do I need try except inside all the functions?
我正在学习pythontry:except条款
我有以下调用层次结构
def A():
try:
B(some_args)
except Exception as e:
print (repr(e))
B实现如下
def B(some_args):
C(some_args)
注意除了B里面没有try
除了在 C 中,我尝试了以下
def C():
try:
dothis()
except exception as e:
raise e
我的问题是,如果调用层次结构中的函数之一(在本例中为 B)
A()
calls B()
calls C()
没有 try except 子句,A 是否仍会收到 C() 中引发的异常?
是的,会的。 try/catch 块将捕获 try 块内抛出的任何异常,无论抛出的位置有多深。
此外,您可以 catch 不同级别的特定异常,因此 B 中的 catch 块可能会捕获一个抛出的异常,而 A 中的 catch 块可能是这样的情况将捕获不同的异常,每个异常都可能在 C 或什至 C 调用的其他函数中抛出,等等。例如:
catch FileNotFoundException as ex:
会捕获 FileNotFoundException,但不会捕获其他异常
我正在学习pythontry:except条款
我有以下调用层次结构
def A():
try:
B(some_args)
except Exception as e:
print (repr(e))
B实现如下
def B(some_args):
C(some_args)
注意除了B里面没有try 除了在 C 中,我尝试了以下
def C():
try:
dothis()
except exception as e:
raise e
我的问题是,如果调用层次结构中的函数之一(在本例中为 B)
A()
calls B()
calls C()
没有 try except 子句,A 是否仍会收到 C() 中引发的异常?
是的,会的。 try/catch 块将捕获 try 块内抛出的任何异常,无论抛出的位置有多深。
此外,您可以 catch 不同级别的特定异常,因此 B 中的 catch 块可能会捕获一个抛出的异常,而 A 中的 catch 块可能是这样的情况将捕获不同的异常,每个异常都可能在 C 或什至 C 调用的其他函数中抛出,等等。例如:
catch FileNotFoundException as ex:
会捕获 FileNotFoundException,但不会捕获其他异常