Perché è possibile in Python per avere una clausola except un'eccezione non definita?

voti
1

Il mio google-fu mi sta venendo a mancare. Perché il seguente programma compilare ed eseguire senza errori (Python 2 e 3)?

try:
    print('something')
except ThisNameDoesNotExist:
    print('blah')

Non riesco a pensare a una buona ragione per cui questo non sarebbe causare un errore. Ottengo che non è in esecuzione che, ad eccezione clausola, in modo da non colpire la variabile non definita, ma sembra come dovrebbe essere abbastanza facile da prendere per me. Qualcuno può spiegare a me?

È pubblicato 11/02/2014 alle 05:01
dall'utente
In altre lingue...                            


1 risposte

voti
2

Si fa ottenere l'errore se Python in realtà analizza quella linea. Non appena v'è un'eccezione, che vede ThisNameDoesNotExistnon esiste:

>>> try:
...     print(1/0)
... except ThisNameDoesNotExist:
...     print('blah')
... 
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
NameError: name 'ThisNameDoesNotExist' is not defined

In caso contrario, non v'è alcun errore, come è la natura del Python.

Risposto il 11/02/2014 a 05:09
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more