try函数的显式异常问题

Ome*_*shi -4 python

无论代码是否失败,我都必须运行它。我在用着ExplicitException。以下是我的代码:

try:
    G.add_edge(data1[0][0],data1[1][0],weight=data1[2+i][0])
except ExplicitException:
    pass

try:
    G.add_edge(data1[0][0],data1[5][0],weight=data1[6+i][0])
except ExplicitException:
    pass

try:
    G.add_edge(data1[0][0],data1[9][0],weight=data1[10+i][0])
except ExplicitException:
    pass   

try:
    G.add_edge(data1[0][0],data1[13][0],weight=data1[14+i][0])
except ExplicitException:
    pass   
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

NameError:名称“ExplicitException”未定义

希望得到一些帮助

Shu*_*rma 5

我想你从这个答案中得到了这个想法。答案试图传达的想法是您可以使用您选择的例外。事实上,不存在这样的例外ExplicitException。您可以使用内置的任何异常定义您自己的异常类。

您还可以排除基类Exception并排除所有异常。

try:
    # code
except Exception:
    pass
Run Code Online (Sandbox Code Playgroud)

编辑:虽然您可以添加多个 try- except 块,但这不是一个好的做法。就您而言,我相信您的异常是因为某些无效值i会引发越界异常。因此,您可以通过检查 if-else 条件中的正确值来避免这种情况i

如果您确实喜欢使用 try- except,请尝试概括这些行并将它们合并到一个循环中。这将使错误处理更容易。例如上面的例子:

for j in range(1,14,4):
    try:
        G.add_edge(data1[0][0],data1[j][0],weight=data1[1+j+i][0])
    except:
        pass
Run Code Online (Sandbox Code Playgroud)