Я бег кодаРучки/уловы RuntimeWarnings в связи с igraph питоном
testgraph = igraph.Graph.Degree_Sequence(degseq,method = "vl")
иногда бросает предупреждение
RuntimeWarning: Cannot shuffle graph, maybe there is only a single one? at gengraph_graph_molloy_hash.cpp:332
Я хотел бы, чтобы поймать это предупреждение, так что я могу перестать работать с которые имеют только один граф.
Я попытался
degseq = [1,2,2,3]
try:
testgraph = igraph.Graph.Degree_Sequence(degseq,method = "vl")
except RuntimeWarning:
print degseq
else:
print "go on"
который возвращает предупреждение, а затем "идти".
Я попытался модернизировать предупреждение исключения с
warnings.simplefilter('error', 'Cannot shuffle graph')
degseq = [1,2,2,3]
try:
testgraph = igraph.Graph.Degree_Sequence(degseq,method = "vl")
except RuntimeWarning:
print degseq
else:
print "go on"
среди других, а теперь что-то странное происходит! Он возвращает
testgraph = igraph.Graph.Degree_Sequence(degseq,method = "vl")
MemoryError: Error at src/attributes.c:284: not enough memory to allocate attribute hashes, Out of memory
Как заставить python уловить RuntimeWarning? И почему возникает новое исключение, когда я обновляю предупреждение до исключения?
Я добавил сообщение об ошибке в журнал ошибок 'python-igraph' относительно' MemoryError': https://github.com/igraph/python-igraph/issues/38 –