piccolo esempio:
for expr in ("1/0", "5=False", "().append('3')"):
try:
eval(expr)
except:
pass #come fareste voi?
Non preoccupatevi, è normalissimo far valutare errori madornali come questi quando si parla di eccezioni xD
Il modulo "sys" è nostro amico, e ci mette a disposizione (grazie alle batterie incluse) alcuni metodi:
- exc_info
- exc_traceback
- exc_type
- exc_value
- excepthook
- exec_prefix
utilizzeremo il primo per mostrare i possibili errori derivanti dalla valutazione delle espressioni.
for expr in ("1/0", "5=False", "().append('3')"):try:
eval(expr)
except:
print sys.exc_info()
Se noi avviassimo il codice nell'IDLE Python, avremmo questi risultati:
(, ZeroDivisionError('integer division or modulo by zero',), )
(, SyntaxError('invalid syntax', ('', 1, 2, '5=False')), )
(, AttributeError("'tuple' object has no attribute 'append'",), )
Fate buon uso delle informazioni!!! Stay tuned!

0 commenti:
Posta un commento