Try-Except Dichiarazioni in Python

Try-Except Dichiarazioni in Python
“Quando si scrive codice in Python, soprattutto se è un po 'più complicato, è più che probabile per riscontrare errori. Quindi il modo di scrivere un buon codice è gestire abilmente questi errori. Dobbiamo assicurarci di poter fare agevolmente questi errori in un altro percorso. E così, a questo scopo, in Python, è stata creata la dichiarazione di try-eccezione. L'istruzione TRY-Eccept è costituita da un blocco di prova e uno o più tranne i blocchi. In questo tutorial, impareremo l'affermazione del tentativo."

Try-Except Dichiarazione

L'istruzione Try-Except assomiglia a questa:

Tentativo:
Codice
Tranne ExceptionName:
Codice

Quindi, abbiamo l'istruzione Try e quindi il codice viene inserito lì; Questo è il codice principale che desideri eseguire. Quindi esiste l'istruzione tranne con un'altra serie di codici, ma questo codice ha lo scopo di affrontare l'eccezione. Python tenterà di prima di prima eseguire tutto il codice all'interno dell'istruzione Try. Quando non c'è nessun errore, allora tutto va bene e l'istruzione tranne viene semplicemente passata (saltata). Se, d'altra parte, si verifica un'eccezione, Python controllerà se corrisponde al nome di eccezione nell'istruzione TREST. Se corrisponde, inizierà a eseguire il codice dell'istruzione tranne.

Esempio 1

principale.Py
Tentativo:
y = (2/3)
stampa (y)
Tranne ZerodivisionError come errore:
Print ("Errore: % S" % Errore)
stampa ("questa affermazione è al di fuori della clausola di prova eccetto.")

Produzione:

0.6666666666666666

Questa affermazione è al di fuori della clausola di prova.

Processo finito con il codice di uscita 0

Quindi qui, abbiamo un'istruzione Try-Except e poi un po 'di codice al di fuori del blocco Try-Except. Poiché stiamo dividendo 2 per 3 e che ci dà un numero valido, eseguirà l'istruzione di prova e quindi bypasserà l'istruzione tranne - perché non esiste ZerodivisionError. Una volta che bypassa l'affermazione tranne, continua con il resto del programma e termina senza intoppi. Il punto di questo esempio è mostrare che l'istruzione tranne può essere bypassata.

Esempio n. 2

principale.Py
Tentativo:
y = (2/0)
stampa (y)
Tranne ZerodivisionError come errore:
Print ("Errore: % S" % Errore)

Produzione:

Errore: divisione per zero

Processo finito con il codice di uscita 0

In questo caso, nel blocco di prova, stiamo cercando di dividere 2 per 0 e assegnare il valore a y. Come potresti o non potresti sapere, semplicemente non puoi dividere per 0, quindi c'è un piccolo problema qui. Dal momento che vogliamo essere abili nel trattare gli errori, abbiamo deciso di scrivere un blocco tranne con il nome eccezionale di ZerodivisionError. Ciò che fa è catturare ZerodivisionError o, in altre parole, divisione per zero errore e stampare l'errore. Allora cosa otteniamo? Una dichiarazione che dice che semplicemente non puoi dividere per zero. Ma il punto è che il nostro programma non si è schiantato! Invece ha indicato il difetto.

Esempio n. 3

principale.Py
Tentativo:
file = "file.TXT"
f = open (file, 'r')
Stampa (f.Leggere())
Tranne ZerodivisionError come errore:
Stampa (errore)
Tranne Syntaxerror come Serror:
Stampa (Serror)
Tranne FileNotfounderror come Ferror:
Stampa (Ferror)

Produzione:

[ERRNO 2] Nessun file o directory di questo tipo: 'File.TXT'

Processo finito con il codice di uscita 0

Il punto di questo esempio è semplice: puoi scrivere tutte le eccezioni che vuoi. Se pensi che potrebbe esserci un filenotfounderror, lo aggiungi all'elenco degli errori. Ciò significherà che quando Python tende a eseguire il blocco di prova, non trova il file, quindi esce dall'istruzione Try e cerca attraverso le dichiarazioni tranne se qualcuno di loro corrisponde all'errore sollevato. Dal momento che l'ultimo corrisponde, stamperà il Ferror o il FileNotFounderror.

Esempio #4

In questo caso, esamineremo un esempio che prende questo formato:

Tentativo:
Set di codice 1
Set di codice 2
Tranne ExceptionName1:
Set di codice 3
Tranne ExceptionName2:
Set di codice 4
Tranne ExceptionName3:
Set di codice 5 principale.Py
Tentativo:
file = "file.TXT"
f = open (file, 'r')
Stampa (f.Leggere())
y = (2/0)
stampa (y)
Tranne ZerodivisionError come errore:
Stampa (errore)
Tranne Syntaxerror come Serror:
Stampa (Serror)
Tranne FileNotfounderror come Ferror:
Stampa (Ferror)

Produzione:

[ERRNO 2] Nessun file o directory di questo tipo: 'File.TXT'

Processo finito con il codice di uscita 0

In questo particolare esempio, abbiamo due errori: un filenotfounderror e uno zerodivisionError. Ma nota come il primo errore sia il FileNotFounderror. Allora cosa fa Python? Inizia a leggere il codice, l'istruzione Try e incontra il FileNotFounderror, quindi esce dall'istruzione Try e inizia a scansionare attraverso le varie dichiarazioni ad eccezione, e trova il FileNotFounderror ad eccezione dell'istruzione e quindi esegue il codice all'interno di essa. Qui, il secondo errore viene omesso e non otteniamo uno ZerodivisionError.

Esempio #5

principale.Py
Tentativo:
x = '9'
Se x> 6:
Stampa (x/6)
Tranne ZerodivisionError come errore:
Stampa (errore)
tranne:
Stampa ("qualche altro errore")

Produzione:

Qualche altro errore

Processo finito con il codice di uscita 0

Quindi in questo esempio, c'era un typeerror perché non puoi usare> tra una stringa e un numero intero. Quindi, viene tentato il blocco di prova e quando affronta l'errore di tipo, va direttamente alla "generale" tranne la clausola ed esegue quello. In altre parole, se vuoi catturare errori e non conosci i loro nomi, puoi lasciare la parte di nome eccezione vuota.

Il punto di questo esempio è che è possibile utilizzare l'affermazione tranne senza nominare un errore e, in teoria, catturare qualsiasi errore lanciato, ma non è consigliato! In altre parole, solo usare tranne senza un nome di eccezione non è davvero consigliato.

Conclusione

La dichiarazione di prova è una benedizione per tutti i programmatori che usano Python. La dichiarazione TROY-Eccept è costituita da due o più blocchi. Il primo blocco è sempre il blocco di istruzione Try che è pieno di codice. Dopodiché, puoi aggiungere uno o più tranne i blocchi per catturare errori molto specifici. Di solito, devi anche assegnare un nome all'istruzione tranne (es: tranne ZerodivisionError); Tuttavia, se davvero non sai che tipo di errori vedrai, puoi lasciarlo vuoto (Ex: Tranne). Ad ogni modo, il meglio di tutti i programmatori saprà non fare errori e quindi tenderanno a utilizzare meno tranne i blocchi ma a ciascuno dei loro gusti. Quindi usa saggiamente la dichiarazione di prova. Non dimenticare che la programmazione implica abilità.

Codice felice!