Per aggiungere alle altre risposte di cui sopra, la clausola finally
viene eseguita indipendentemente da ciò, mentre la clausola else
viene eseguita solo se non è stata sollevata un'eccezione.
Per esempio, la scrittura su un file senza eccezioni sarà uscita la seguente:
file = open('test.txt', 'w')
try:
file.write("Testing.")
print("Writing to file.")
except IOError:
print("Could not write to file.")
else:
print("Write successful.")
finally:
file.close()
print("File closed.")
USCITA:
Writing to file.
Write successful.
File closed.
Se v'è un'eccezione, il il codice mostrerà quanto segue, (nota che un errore intenzionale è causato mantenendo il file re Ad-solo.
file = open('test.txt', 'r')
try:
file.write("Testing.")
print("Writing to file.")
except IOError:
print("Could not write to file.")
else:
print("Write successful.")
finally:
file.close()
print("File closed.")
USCITA:
Could not write to file.
File closed.
Possiamo vedere che la clausola finally
esegue indipendentemente un'eccezione. Spero che questo ti aiuti.
prova: #x = Ciao + 20 x = 10 + 20 eccezione: print 'Sono in salvo blocco' x = 20 + 30 altro: print 'Sono in blocco else' x + = 1 infine: stampa 'Finalmente x =% s'% (x) –