Questa è una domanda molto stupida, ma sto correndo alcuni compiti e catturare i loro errori:di MemoryError come str è vuoto in Python
try:
run_something()
except Exception as e:
handle_error(str(e))
Voglio che il messaggio di errore come stringa perché sono utilizzando un'interfaccia utente e voglio visualizzare l'errore in una finestra.
Il problema può essere replicata come:
>>> import numpy as np
>>> np.range(1e10)
MemoryError Traceback (most recent call last)
<ipython-input-4-20a59c2069b2> in <module>()
----> 1 np.arange(1e10)
MemoryError:
Tuttavia, se provo a catturare l'errore e stampare il suo messaggio (che speravo di essere qualcosa come "MemoryError":
try:
np.arange(1e10)
except Exception as e:
print(str(e))
print("Catched!")
L'unico risultato che ottengo è "Catched!" .Questo è così stupido, stavo facendo un po 'di lavoro con l'interfaccia utente e il threading e mi ci è voluto un po' per capire che il problema era un errore di memoria senza alcun messaggio
MemoryError è l'unica eccezione che viene tradotta in una stringa vuota? Perché se è il caso, posso controllarlo. In caso contrario, come ottenere il messaggio come stringa?
Thx! abbastanza utile: D –