当一个节点不在图中时,我会收到异常错误。尝试捕获和处理它时,我无法做到(所以我一定做错了什么)。如何捕获和处理
以下是我尝试捕获和处理它的方式:
networkx.exception.NetworkXError
?以下是错误信息:<snip>
raise NetworkXError("The node %s is not in the digraph."%(n,))
networkx.exception.NetworkXError: The node 33293542 is not in the digraph.
以下是我尝试捕获和处理它的方式:
try:
path_len = nx.shortest_path_length(G,uNode, vNode)
except (nx.NetworkXNoPath, nx.exception.NetworkXError) as e:
print e
continue
我也尝试过以下方法:
try:
path_len = nx.shortest_path_length(G,uNode, vNode)
except (nx.NetworkXNoPath, KeyError) as e:
print e
continue
我在两个列表中维护了uNode
和vNode
,我可以这样做:if v in target_nodes:
。但在此之前,我想知道是否有一种优雅的方法来处理这个NetworkX异常
?
if G.has_node(uNode) and G.has_node(vNode): path_len = nx.shortest_path_length(G,uNode, vNode)
呢? - EdChum