Come usare al meglio Try Tranne in Python – Specialmente per principianti

Nella programmazione Python, la gestione delle eccezioni consente a un programmatore di abilitare il controllo del flusso. E non ha. di eccezioni integrate per rilevare errori nel caso in cui il codice si interrompa. L’utilizzo di try-except è il modo più comune e naturale di gestire errori imprevisti insieme a molti altri costrutti di gestione delle eccezioni. In questo tutorial, si arriva a esplorare alcune delle migliori tecniche da utilizzare try-tranne che in Python.

La gestione degli errori o la gestione delle eccezioni in Python possono essere applicate impostando le eccezioni. Utilizzando un blocco try, è possibile implementare un’eccezione e gestire l’errore all’interno di un blocco except. Ogni volta che il codice si interrompe all’interno di un blocco try, il normale flusso di codice si arresta e il controllo verrà passato al blocco except per la gestione dell’errore.

Leggi anche – Impara la gestione delle eccezioni Python da zero.

Perché usare la clausola Try-Except / Try-Except-else? Con l’aiuto di try-except e try-except-else, puoi evitare molti problemi sconosciuti che potrebbero derivare dal tuo codice. Ad esempio, il codice Python che utilizza lo stile LBYL (Guarda prima di saltare) può portare a condizioni di gara. Qui, la clausola try-except può venire a salvarti. Inoltre, ci sono casi in cui il tuo codice dipende in modo critico da alcune informazioni che potrebbero diventare obsolete fino al momento in cui lo ricevi. Ad esempio, il codice che effettua chiamate al sistema operativo.percorso.esiste o Coda.full potrebbe non riuscire in quanto queste funzioni potrebbero restituire dati che diventano obsoleti nel momento in cui lo si utilizza. La scelta più saggia qui sarebbe quella di seguire lo stile try-except-else nel codice per gestire i casi precedenti in modo più affidabile.

Aumentare le eccezioni è anche consentito in Python. Significa che puoi lanciare o sollevare un’eccezione ogni volta che è necessario. Puoi farlo semplicemente chiamando dal tuo codice. Una volta sollevata, l’eccezione interromperà l’esecuzione corrente come al solito e salirà ulteriormente nello stack delle chiamate fino a quando non verrà gestita.

Perché usare le eccezioni? Non solo aiutano a risolvere problemi popolari come le condizioni di gara, ma sono anche molto utili per controllare gli errori in aree come loop, gestione dei file, comunicazione del database, accesso alla rete e così via.

Quindi, tratteremo problemi più ampi e forniremo soluzioni in questo post. Si prega di notare che la gestione delle eccezioni è un’arte che ti porta immensi poteri per scrivere codice robusto e di qualità. Quindi, preparati a leggere alcune note chiave sulle eccezioni insieme ai modi migliori per gestirle.

Deve leggere – Tutto quello che dovete sapere su Python Copy File .

Python: Consigli per Provare-ad Eccezione, in Prova, Tranne che Altro, e Più

Come Utilizzare al Meglio Provare-Tranne che in Python
Come Utilizzare al Meglio Provare-Tranne che in Python
  • Come gestire un numero arbitrario di eccezione
  • Prendere più eccezioni, ad eccezione del blocco
  • La gestione di più eccezioni, ad eccezione del blocco
  • Ri-generazione di eccezioni in Python
  • Quando utilizzare la clausola else
  • utilizzare
  • Utilizzare il numero di parole chiave per la cattura di specifici tipi di eccezione
  • la Migliore pratica per elevare a mano eccezioni
  • Come ignorare gli errori e continuare l’esecuzione
  • Errori di eccezione più comuni in Python
  • Esempi di eccezioni più comuni in Python

1. Come gestire un’eccezione arbitraria

A volte, potrebbe essere necessario un modo per consentire qualsiasi eccezione arbitraria e anche per essere in grado di visualizzare il messaggio di errore o eccezione.

È facilmente realizzabile usando le eccezioni Python. Controlla il codice qui sotto. Durante il test, è possibile inserire il codice all’interno del blocco try nell’esempio seguente.

try: #your codeexcept Exception as ex: print(ex)

Torna all’inizio

2. Cattura più eccezioni in un blocco tranne

È possibile catturare più eccezioni in un singolo blocco tranne. Vedi l’esempio seguente.

except (Exception1, Exception2) as e: pass

Si noti che è possibile separare le eccezioni dalla variabile con una virgola che è applicabile in Python 2.6 / 2.7. Ma non puoi farlo in Python 3. Quindi, si dovrebbe preferire di utilizzare la parola chiave.

Torna all’inizio

3. Gestione di più eccezioni con un blocco tranne

Esistono molti modi per gestire più eccezioni. Il primo di essi richiede il posizionamento di tutte le eccezioni che possono verificarsi sotto forma di una tupla. Si prega di vedere dal basso.

try: file = open('input-file', 'open mode')except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args))

Il metodo successivo consiste nel gestire ogni eccezione in un blocco except dedicato. È possibile aggiungere come molti tranne blocchi, se necessario. Vedi l’esempio seguente.

try: file = open('input-file', 'open mode')except EOFError as ex: print("Caught the EOF error.") raise exexcept IOError as e: print("Caught the I/O error.") raise ex

L’ultimo ma non meno importante è usare except senza menzionare alcun attributo exception.

try: file = open('input-file', 'open mode')except: # In case of any unhandled error, throw it away raise

Questo metodo può essere utile se non hai idea dell’eccezione eventualmente generata dal tuo programma.

Torna all’inizio

4. Re-raising eccezioni in Python

Eccezioni una volta sollevato continuare a passare ai metodi di chiamata fino a quando gestito. Anche se è possibile aggiungere una clausola except che potrebbe semplicemente avere una chiamata senza alcun argomento. Si tradurrà in reraising l’eccezione.

Vedere il seguente codice di esempio.

try: # Intentionally raise an exception. raise Exception('I learn Python!')except: print("Entered in except.") # Re-raise the exception. raise

Uscita:

Entered in except.Traceback (most recent call last): File "python", line 3, in <module>Exception: I learn Python!

Torna all’inizio

5. Quando usare la clausola else

Usa una clausola else subito dopo il blocco try-except. La clausola else verrà colpita solo se non viene generata alcuna eccezione. L’istruzione else dovrebbe sempre precedere i blocchi except.

Nei blocchi else, è possibile aggiungere codice che si desidera eseguire quando non si sono verificati errori.

Vedere l’esempio seguente. In questo esempio, è possibile vedere un ciclo while in esecuzione all’infinito. Il codice richiede l’input dell’utente e quindi lo analizza utilizzando la funzione integrata. Se l’utente inserisce un valore zero, il blocco except verrà colpito. Altrimenti, il codice scorrerà attraverso il blocco else.

while True: # Enter integer value from the console. x = int(input()) # Divide 1 by x to test error cases try: result = 1 / x except: print("Error case") exit(0) else: print("Pass case") exit(1)

Torna all’inizio

6. Fare uso di

Se si dispone di un codice che si desidera eseguire in tutte le situazioni, quindi scrivere all’interno del . Python eseguirà sempre le istruzioni codificate nel . È il modo più comune di fare attività di pulizia. È inoltre possibile assicurarsi che la pulizia ottiene attraverso.

Un errore viene rilevato dalla clausola try. Dopo che il codice nel blocco except viene eseguito, le istruzioni nel verranno eseguite.

Si prega di notare che a verrà SEMPRE eseguito, anche se sei tornato prima di esso.

Vedere l’esempio seguente.

try: # Intentionally raise an error. x = 1 / 0except: # Except clause: print("Error occurred")finally: # Finally clause: print("The is hit")

Uscita:

Error occurredThe is hit

Torna all’inizio

7. Utilizzare la parola chiave As per rilevare specifici tipi di eccezione

Con l’aiuto di as<identificatore>, è possibile creare un nuovo oggetto. E puoi anche l’oggetto exception. Qui, nell’esempio seguente, stiamo creando l’oggetto IOError e quindi usandolo all’interno della clausola.

try: # Intentionally raise an error. f = open("no-file")except IOError as err: # Creating IOError instance for book keeping. print("Error:", err) print("Code:", err.errno)

Uscita:

('Error:', IOError(2, 'No such file or directory'))('Code:', 2)

Torna all’inizio

8. Best practice per sollevare manualmente le eccezioni

Evitare di sollevare eccezioni generiche perché se lo si fa, devono essere rilevate anche tutte le altre eccezioni più specifiche. Quindi, la migliore pratica è quella di sollevare l’eccezione più specifica vicino al tuo problema.

Cattivo esempio.

def bad_exception(): try: raise ValueError('Intentional - do not want this to get caught') raise Exception('Exception to be handled') except Exception as error: print('Inside the except block: ' + repr(error)) bad_exception()

Output:

Inside the except block: ValueError('Intentional - do not want this to get caught',)

Best Practice:

Qui, stiamo sollevando un tipo specifico di eccezione, non una generica. E stiamo anche usando l’opzione args per stampare gli argomenti errati se ce ne sono. Vediamo l’esempio qui sotto.

try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)

Uscita:

('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')

Torna all’inizio

9. Come saltare gli errori e continuare l’esecuzione

Idealmente, non dovresti farlo. Ma se vuoi ancora farlo, segui il codice qui sotto per verificare l’approccio giusto.

try: assert Falseexcept AssertionError: passprint('Welcome to Prometheus!!!')

Output:

Welcome to Prometheus!!!

Torna all’inizio

Ora, dai un’occhiata ad alcune delle eccezioni Python più comuni e ai loro esempi.

Errori di eccezione più comuni

  • IOError – Si verifica su errori come un file non riesce ad aprire.
  • ImportError – Se un modulo Python non può essere caricato o localizzato.
  • ValueError-Si verifica se una funzione ottiene un argomento di tipo corretto ma un valore inappropriato.
  • KeyboardInterrupt – Viene colpito quando l’utente inserisce il tasto di interrupt (cioè Control-C o Canc)
  • EOFError – Viene generato se le funzioni di input (input()/raw_input()) colpiscono una condizione di fine file (EOF) ma senza leggere alcun dato.

Torna all’inizio

Esempi delle eccezioni più comuni

except IOError:print('Error occurred while opening the file.')except ValueError:print('Non-numeric input detected.')except ImportError:print('Unable to locate the module.')except EOFError:print('Identified EOF error.')except KeyboardInterrupt:print('Wrong keyboard input.')except:print('An error occurred.')

Torna all’inizio

Riepilogo – Come utilizzare al meglio Try-Tranne in Python

durante la programmazione, gli errori sono destinati a verificarsi. È un fatto che nessuno può ignorare. E ci potrebbero essere molte ragioni per errori come il cattivo input dell’utente, il permesso di file insufficiente, l’indisponibilità di una risorsa di rete, la memoria insufficiente o molto probabilmente l’errore del programmatore.

Comunque, tutto questo può essere gestito se il tuo codice usa la gestione delle eccezioni e lo implementa con costrutti come try-except, o tr-except-else, try-except-finally. Spero, ti sarebbe piaciuto leggere il tutorial di cui sopra.

Se ti è piaciuto il post, allora per favore non perdere di condividerlo con gli amici e sui social media (facebook/twitter).

Migliore,
TechBeamers.



Lascia un commento

Il tuo indirizzo email non sarà pubblicato.