CodeGym /Corsi /Python SELF IT /Eccezioni Popolari

Eccezioni Popolari

Python SELF IT
Livello 17 , Lezione 1
Disponibile

2.1 Creazione di eccezioni

Se non puoi batterli, unisciti a loro. Se non possiamo evitare che gli errori si verifichino nel programma, dobbiamo imparare a controllarli. E per questo impariamo a creare consapevolmente eccezioni.

L'esempio più semplice di eccezione è la divisione per zero. E il programma è altrettanto semplice:


x = 100 / 0
        

Questo codice darà un errore:


Traceback (most recent call last):
    File "", line 1, in 
         x = 100 / 0
        ~~~^~   
ZeroDivisionError: division by zero
        

ZeroDivisionError è il nome dell'eccezione e division by zero è una breve descrizione. Inoltre, Python indicherà il numero di riga dove questa eccezione si è verificata.

Incompatibilità dei tipi di dati

Ovviamente, sono possibili anche altre eccezioni. Ad esempio, quando si tenta di sommare una stringa e un numero:


s = "100" + 100
        

Si verificherà l'eccezione TypeError:


Traceback (most recent call last):
    File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'str' and 'int'
        

Indice fuori dai limiti della lista

Un altro errore molto comune che genera un'eccezione è il tentativo di accedere a un elemento che non esiste nella lista:


my_list = [1, 2, 3]
print(my_list[10])
        

Si verificherà l'eccezione IndexError:


Traceback (most recent call last):
    print(my_list[10])
        ~~~~~~~^^^^
IndexError: list index out of range
        

Quante sono in totale? Ci sono migliaia di diversi tipi di eccezioni. Inoltre, puoi crearne di tue, se quelle esistenti non bastano per descrivere una situazione specifica. Tuttavia, le più popolari non sono poi così tante.

2.2 Elenco delle eccezioni più popolari

Ci sono molte eccezioni, ma per te, come principiante, sarà utile conoscere le più popolari. Di seguito fornirò una tabella con esse:

Eccezione Descrizione
Exception Classe base per tutte le eccezioni.
IndexError Si verifica quando si tenta di accedere a un indice inesistente in una sequenza (ad esempio, lista o tupla).
KeyError Si verifica quando si tenta di accedere a una chiave inesistente in un dizionario.
NameError Si verifica quando si tenta di accedere a una variabile inesistente.
RuntimeError Si verifica in caso di errore generico durante l'esecuzione, non riconducibile a altri tipi di eccezioni.
StopIteration Si verifica per segnalare la fine di un'iterazione.
SyntaxError Si verifica in caso di errore sintattico nel codice.
IndentationError Si verifica in caso di errore nei rientri del codice (sottotipo di SyntaxError).
TabError Si verifica quando si mescolano tabulazioni e spazi per i rientri (sottotipo di IndentationError).
TypeError Si verifica quando si tenta di eseguire un'operazione con tipi di dati incompatibili.
UnboundLocalError Si verifica quando si tenta di accedere a una variabile locale prima della sua dichiarazione (sottotipo di NameError).
ValueError Si verifica quando si passa un argomento con un valore errato a una funzione o operazione.
ZeroDivisionError Si verifica durante la divisione per zero.

Molto probabilmente, tu, come principiante, incontrerai tutti questi errori nel primo mese di studio. E non c'è niente di male in questo — si impara solo dagli errori.

2.3 Errori nel codice

Analizziamo altre situazioni in cui nel codice si verificano errori, per aiutarti a trovarli più facilmente nel tuo codice:

IndentationError

Questo tipo di errore si verifica quando i rientri nel codice sono fatti in modo errato. Ad esempio, mescolando tabulazioni e spazi o un numero sbagliato di rientri.


def example():
    print("Hello")
     print("World")  # Rientro sbagliato provoca IndentationError
        
example()
        

NameError


def example():
    print(undeclared_variable)  # Tentativo di usare una variabile non dichiarata provoca NameError
        
example()
        

ValueError

Questo tipo di errore si verifica quando un'operazione o funzione riceve un argomento del tipo corretto, ma con un valore non appropriato.


def example():
    int("abc")  # Tentativo di convertire una stringa che non è un numero provoca ValueError
        
example()
        

KeyError

Questo tipo di errore si verifica quando il programma cerca di accedere a una chiave inesistente in un dizionario.


def example():
    my_dict = {"a": 1, "b": 2}
    print(my_dict["c"])  # Accesso a una chiave inesistente provoca KeyError
        
example()
        

SyntaxError

Questo tipo di errore si verifica quando nel codice c'è un errore sintattico, cioè il codice non è conforme alla grammatica del linguaggio Python.


def example():
    eval("if True print('Hello')")  # Sintassi errata provoca SyntaxError
        
example()
        

Chi è avvisato, è armato. Ora puoi riconoscere e creare situazioni che causano errori. È arrivato il momento di imparare a gestire questi errori.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION