Python try函数的显式异常问题

Python try函数的显式异常问题,python,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

我必须运行代码,不管它是否失败。我正在使用
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   
我得到以下错误:

NameError:未定义名称“ExplicitException”


如果您能提供帮助,我将不胜感激。

我想您是从答案中得到这个想法的。答案试图传达的想法是,您可以使用自己选择的异常。事实上,没有什么例外,比如
ExplicitException
。您可以使用中的任何异常,也可以定义自己的异常类

您还可以排除基类
异常
和所有异常

试试看:
#代码
除例外情况外:
通过
编辑:虽然可以添加多个try-except块,但这不是一个好的做法。在您的情况下,我相信您的异常是由于
I
的某个无效值导致的,该值会抛出越界异常。因此,您可以通过在if-else条件下检查
i
的正确值来避免这种情况

如果您真的喜欢使用try-except,请尝试概括这些行并将它们合并成一个循环。这将使错误处理更容易。例如,在上述情况下:

范围(1,14,4)内j的
:
尝试:
G.add_edge(data1[0][0],data1[j][0],weight=data1[1+j+i][0])
除:
通过

在您在注释中链接的线程中没有
显式异常
,OP指的是显式异常类型。因为代码本身是重复的,所以您可以构建一个函数并使用它

def add_edge(first_indices, second_indices, weight_indices):
    try:
        G.add_edge(data1[first_indices[0]][first_indices[1]], data1[second_indices[0]][second_indices[1]], weight=data1[weight_indices[0]][weight_indices[1]])
    except (IndexError, TypeError):  # example to explicit exception
        pass

add_edge([0, 0], [1, 0], [2 + i, 0])
add_edge([0, 0], [5, 0], [6 + i, 0])
add_edge([0, 0], [9, 0], [10 + i, 0])
add_edge([0, 0], [13, 0], [14 + i, 0])

什么是
ExplicitException
?我想在try块中运行多个函数,如果函数失败,则忽略该函数,并移动到下一个函数。我找到了上面提到显式异常的链接。他指的是显式异常类型,没有
ExplicitException
。有没有更快的方法。我有数百行代码。无法手动执行所有这些操作?
除了
之外,不指定异常类型也会捕获
sys.exit()
键盘中断
<代码>例外情况除外
更好。