Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以有多个try语句连接到一个try语句吗?_Python_Performance - Fatal编程技术网

Python 我可以有多个try语句连接到一个try语句吗?

Python 我可以有多个try语句连接到一个try语句吗?,python,performance,Python,Performance,因此,我希望能够高效地用python编写代码,我正在做如下工作: 试试看: #代码A 除: #代码A 尝试: #代码B 除: #代码B 尝试: #代码B 除: #代码B 但是我想把它们都链接到一个,除了块,这样我就可以使用else语句来捕获它们了!(预期参考)。 那么我可以做如下的事情吗 try: #Code A try: #Code B except: #Code C else: #Code D 我已经尝试过代码,但对于我自己的发现和有限的“相似”问题,我得

因此,我希望能够高效地用python编写代码,我正在做如下工作:

试试看:
#代码A
除:
#代码A
尝试:
#代码B
除:
#代码B
尝试:
#代码B
除:
#代码B
但是我想把它们都链接到一个
,除了
块,这样我就可以使用
else
语句来捕获它们了!(预期参考)。 那么我可以做如下的事情吗

try:
    #Code A
try:
    #Code B
except:
    #Code C
else:
    #Code D

我已经尝试过代码,但对于我自己的发现和有限的“相似”问题,我得到的只是:
错误:无效语法“try:”
。对此我能做些什么吗?

你实际上根本不需要那些额外的
试试。每当
try
块内出现异常时,跳过从该块开始直到该块结束的所有代码,控件立即跳转到匹配的
块,但
块除外。同样,当
try
块正常到达其末端时,执行
else
块。通过这种方式,您不需要多个
try
块-只需将它们连接成一个块,您就可以实现您的目标。

不,您不能让多个try块仅与一个块关联,除了块。但您可以将除块之外的多个块关联为仅一个try块

每个try块都需要,但块除外。如果您未提供一个try块,则会出现异常

关联到一个try块的多个除外块的示例:-

try:
    # do something
    pass
except ValueError:
    # handle ValueError exception
    pass
except (TypeError, ZeroDivisionError):
    # handle multiple exceptions
    # TypeError and ZeroDivisionError
    pass
except:
    # handle all other exceptions
    pass
假设您在try块中执行了一些操作,并且遇到了一个问题,那么首先,except块将接管控制权,如果它不能处理异常,那么下面的except块将处理它,依此类推


注意:如果第一个except块可以处理异常,则下一个except块不会执行或不会起作用。

对于特定的异常类型,最好使用更通用的except块。 具有多个except块的单个try语句

try:
    #put your risky code
    # put another risky code
    pass
# multiple exception block will help to catch exact exception and can perform
# operation
except KeyError:
    pass
except IOError:
    pass
except ValueError:
    pass
except Exception:
    pass
else:
    pass
我对表演一无所知。。。应该只有一种合理的方法来处理您的异常。我认为你应该更关心正确性。