Python Gestione delle eccezioni: try, except, finally, raise

โšก Riepilogo intelligente

Python La gestione delle eccezioni consente al programma di reagire agli errori di runtime anzichรฉ bloccarsi. Qui imparerai come funzionano i blocchi try, except, finally e raise, perchรฉ le eccezioni sono importanti e i tipi di errore predefiniti piรน comuni che incontrerai.

  • โš ๏ธ Che cosa รจ: Un'eccezione รจ un errore di runtime che Python Si verifica quando qualcosa va storto.
  • ๐Ÿ›ก๏ธ prova / eccezione: Un blocco try esegue codice rischioso; except intercetta e gestisce l'eccezione.
  • ๐Ÿงน finalmente: Un blocco finally viene sempre eseguito, indipendentemente dal fatto che si sia verificata un'eccezione o meno.
  • ๐Ÿš€ aumentare: L'istruzione raise consente di generare un'eccezione intenzionalmente.
  • ๐Ÿ“‹ Tipi di errore: Le eccezioni piรน comuni includono ValueError, KeyError, IndexError e ZeroDivisionError.
  • ๐Ÿค– Aiuto tramite intelligenza artificiale: Strumenti di intelligenza artificiale come Copilot generano blocchi try-except e suggeriscono i tipi di errore.

Python La gestione delle eccezioni

Cos'รจ la gestione delle eccezioni Python?

Un'eccezione รจ un errore che si verifica al momento dell'esecuzione di un programma. Tuttavia, durante l'esecuzione di un programma, Python genera un'eccezione che dovrebbe essere gestita per evitare il crash del programma. In Python linguaggio, le eccezioni si attivano automaticamente in caso di errori oppure possono essere attivate e intercettate dal codice.

L'eccezione indica che, sebbene l'evento possa verificarsi, questo tipo di evento accade raramente. Quando il metodo non รจ in grado di gestire l'eccezione, viene lanciata alla sua funzione chiamante. Alla fine, quando viene emessa un'eccezione dalla funzione principale, il programma viene terminato bruscamente.

Esempi comuni di eccezione

  • Divisione per zero
  • Accesso a un file che non esiste.
  • Aggiunta di due tipi incompatibili
  • Tentativo di accedere a un indice inesistente di una sequenza
  • Rimozione della tabella dal server database disconnesso.
  • Prelievo ATM superiore all'importo disponibile

Perchรฉ dovresti usare le Eccezioni?

Ecco i motivi per utilizzare le eccezioni in Python:

  • La gestione delle eccezioni consente di separare il codice di gestione degli errori dal codice normale.
  • Un'eccezione รจ un file Python oggetto che rappresenta un errore.
  • Come con i commenti sul codice, le eccezioni ti aiutano a ricordare cosa si aspetta il programma.
  • Chiarisce il codice e migliora la leggibilitร .
  • Consente di stimolare le conseguenze poichรฉ la gestione degli errori avviene in un unico luogo e in un unico modo.
  • Un'eccezione รจ un metodo conveniente per gestire i messaggi di errore.
  • In Python, รจ possibile sollevare un'eccezione nel programma utilizzando il metodo raiseException.
  • La generazione di un'eccezione aiuta a interrompere l'esecuzione corrente del codice e riporta l'eccezione alle aspettative finchรฉ non viene gestita.
  • Elaborazione delle eccezioni per i componenti che non possono gestirle direttamente.

Regole di eccezione

Ecco alcune regole essenziali di Python gestione delle eccezioni:

  • Le eccezioni devono essere oggetti di classe
  • Per le eccezioni di classe, puoi utilizzare l'istruzione try con una clausola tranne che menziona una classe particolare.
  • Anche se un'istruzione o un'espressione รจ sintatticamente corretta, potrebbe visualizzare un errore quando si tenta di eseguirla.
  • Gli errori rilevati durante l'esecuzione sono chiamati eccezioni e non sono incondizionatamente fatali.

Python Meccanismo di gestione delle eccezioni

La gestione delle eccezioni รจ gestita dalle seguenti 5 parole chiave:

  1. prova
  2. prendere
  3. infine
  4. gettare

Python Prova Dichiarazione

Un'istruzione try include la parola chiave try, seguita da due punti (:) e da una serie di codici in cui possono verificarsi eccezioni. Ha una o piรน clausole.

Durante l'esecuzione dell'istruzione try, se non si sono verificate eccezioni, l'interprete ignora i gestori di eccezioni per quella specifica istruzione try.

Nel caso in cui si verifichi un'eccezione in una suite try, la suite try scade e il controllo del programma viene trasferito al gestore delle eccezioni corrispondente che segue la suite try.

Syntax:
try:
statement(s)

La dichiarazione di cattura

I blocchi catch accettano un argomento alla volta, che รจ il tipo di eccezione che รจ probabile che catturi. Questi argomenti possono variare da un tipo specifico di eccezione che puรฒ essere variato a una categoria generale di eccezioni.

Regole per il blocco catch:

  • รˆ possibile definire un blocco catch utilizzando la parola chiave catch
  • Il parametro Catch Exception รจ sempre racchiuso tra parentesi
  • Rappresenta sempre il tipo di eccezione gestita dal blocco catch.
  • Un codice di gestione delle eccezioni viene scritto tra due parentesi graffe {}.
  • รˆ possibile posizionare piรน blocchi catch all'interno di un singolo blocco try.
  • Puoi utilizzare un blocco catch solo dopo il blocco try.
  • Tutto il blocco catch dovrebbe essere ordinato dalla sottoclasse all'eccezione della superclasse.

Esempio:

try
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {
System.err.printin("Caught second " + e.getMessage());
}

Infine Dichiarazione in Python

Infine block viene sempre eseguito indipendentemente dal fatto che un'eccezione venga lanciata o meno. La parola chiave finale consente di creare un blocco di codice che segue un blocco try-catch.

Infine, la clausola รจ facoltativa. Si intende definire le azioni di bonifica che dovranno essere eseguite in tutte le condizioni.

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

Infine, la clausola viene eseguita prima dell'istruzione try.

Aumentare la dichiarazione in Python

L'istruzione raise specifica un argomento che inizializza l'oggetto eccezione. Qui, una virgola segue il nome dell'eccezione e l'argomento o la tupla dell'argomento che segue la virgola.

Sintassi:

raise [Exception [, args [, traceback]]]

In questa sintassi l'argomento รจ facoltativo e al momento dell'esecuzione il valore dell'argomento dell'eccezione รจ sempre nessuno.
Esempio:
A Python l'eccezione puรฒ essere qualsiasi valore come una stringa, una classe, un numero o un oggetto. La maggior parte di queste eccezioni sollevate da Python core sono classi con un argomento che รจ un'istanza della classe.

Consigli Python errori

Tipo di errore Descrizione
Errore aritmetico ArithmeticError funge da classe base per tutte le eccezioni aritmetiche. Viene sollevato per errori nelle operazioni aritmetiche.
Errore di importazione ImportError viene generato quando si tenta di importare un modulo che non รจ presente. Questo tipo di eccezione si verifica se hai effettuato dei tentativiping Errore nel nome del modulo oppure modulo non presente nel percorso standard.
Errore indice Viene generato un IndexErrore quando si tenta di fare riferimento a una sequenza fuori intervallo.
Errore chiave Quando una chiave specifica non viene trovata in un dizionario, viene sollevata un'eccezione KeyError.
NomeErrore Viene sollevato un NameError quando nel codice si fa riferimento a un nome che non esiste mai nello spazio dei nomi locale o globale.
ValoreErrore Viene generato un errore di valore quando una funzione o un'operazione incorporata riceve un argomento che puรฒ essere del tipo corretto ma non ha un valore adeguato.
EOFerrore Questo tipo di errore si verifica quando una delle funzioni integrate (input() o raw_input()) raggiunge una condizione EOF senza leggere alcun dato.
ZeroDivisonErrore Questo tipo di errore viene generato quando viene eseguita la divisione o il modulo per zero per tutti i tipi numerici.
IOError- Questo tipo di errore viene generato quando un'operazione di input/output fallisce.
Errore di sintassi SyntaxErrors viene sollevato quando si verifica un errore nel file Python sintassi.
Errore di indentazione Questo errore viene generato quando il rientro non รจ definito correttamente

Altro Importante Python Eccezioni

Eccezione Descrizione
ArithmeticException Errore aritmetico, come la divisione per zero.
ArraylndexOutOfBoundsException L'indice dell'array รจ fuori limite.
ArrayStoreException L'assegnazione ti aiuta all'elemento dell'array di un tipo incompatibile.
ClassCastException Cast non valido
MlegalMonitorStateException Operazione di monitoraggio illegale, come l'attesa su un thread sbloccato.
MlegalStateException L'ambiente o l'applicazione sono in uno stato errato.
ClassNotFoundException Classe non trovata.
CloneNotSupportedException Tentativo di clonare un oggetto che non implementa l'interfaccia Cloneable.
Eccezione di accesso illegale L'accesso a una classe รจ negato.
InstanziationException Si verifica quando si tenta di creare un oggetto di un'interfaccia o di un'astrazionetracclasse t.
CloneNotSupportedException Tentativo di clonare un oggetto che non implementa l'interfaccia.

Errori ed eccezioni

Errore Eccezioni
Tutti gli errori in Python sono del tipo non controllato. Le eccezioni includono sia il tipo selezionato che quello non selezionato.
Si verificano errori in fase di esecuzione sconosciuti al compilatore. Le eccezioni possono essere recuperate gestendole con l'aiuto dei blocchi try-catch.
Gli errori sono causati principalmente dall'ambiente in cui รจ in esecuzione l'applicazione. L'applicazione stessa causa eccezioni.
Esempi:
Errore di memoria esaurita
Esempi:
Eccezioni controllate, eccezione SQL, NullPointerException, ecc.

DOMANDE FREQUENTI

La gestione delle eccezioni รจ il processo di risposta agli errori di runtime in modo che il programma non si blocchi. Python Utilizza blocchi try ed except per intercettare le eccezioni ed eseguire il codice di ripristino.

Code che potrebbe fallire va all'interno di un blocco try. Se si verifica un'eccezione, Python salta al blocco except corrispondente, che gestisce l'errore e consente al programma di continuare.

Un blocco finally viene eseguito indipendentemente dal fatto che sia stata generata un'eccezione o meno, quindi รจ ideale per attivitร  di pulizia come la chiusura di file o il rilascio di risorse che devono sempre essere eseguite.

L'istruzione `raise` genera intenzionalmente un'eccezione. รˆ possibile generare un'eccezione predefinita come `ValueError` o un'eccezione personalizzata per segnalare che si รจ verificata una condizione di errore.

Gli errori, come ad esempio un SyntaxError, di solito non possono essere recuperati e arrestano il programma. Le eccezioni sono eventi di runtime che รจ possibile intercettare e gestire con i blocchi try ed except.

Gli assistenti basati sull'intelligenza artificiale come GitHub Copilot completano automaticamente i blocchi try-except, suggeriscono il tipo di eccezione corretto da intercettare e generano infine il codice di pulizia a partire da una breve descrizione della logica.

Sรฌ. Gli strumenti basati sull'IA possono automatizzare l'avvolgimentoping Evita il codice rischioso nei blocchi try-except, raccomanda l'uso di eccezioni specifiche anzichรฉ il semplice except e aggiungi la registrazione dei log per facilitare il debug degli errori.

Le eccezioni predefinite piรน comuni includono ValueError, TypeError, KeyError, IndexError, ImportError, NameError e ZeroDivisionError. Ognuna di esse segnala uno specifico tipo di problema di runtime nel codice.

Riassumi questo post con: