Python中的嵌套调用 - 除了所有函数之外,我是否需要尝试?

问题描述 投票:0回答:1

我正在学习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()中引发的异常吗?

python python-3.6 try-except
1个回答
1
投票

是的,它会的。 try / catch块将捕获try块内抛出的任何异常,无论该位置抛出的位置有多深。

此外,您可以在不同级别捕获特定异常,因此可能是B中的catch块可能捕获一个抛出异常,而A中的catch块将捕获不同的异常,每个异常都可能抛出C或甚至其他一些异常C调用的函数等。例如:

catch FileNotFoundException as ex:

会捕获FileNotFoundException,但不会捕获其他异常

© www.soinside.com 2019 - 2024. All rights reserved.