Python Academy · Lezione

Comprendere le eccezioni

Apprenda che cosa sono le eccezioni e come Python le solleva.

Lezione 1 di 414 passaggi

Comprendere le eccezioni è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Introduzione

Le eccezioni sono il meccanismo di Python per segnalare e gestire gli errori durante l'esecuzione.

Che cos'è un'eccezione

Un'eccezione è un evento che interrompe il normale flusso del programma. Python solleva eccezioni quando si verificano errori, ad esempio quando si divide per zero.
# 1 / 0  # raises ZeroDivisionError
print('exceptions demo')

Gerarchia delle eccezioni

Tutte le eccezioni derivano da BaseException. La maggior parte di quelle destinate all'utente deriva da Exception. Tipi specifici: ValueError, TypeError, KeyError e così via.
print(issubclass(ValueError, Exception))
print(issubclass(Exception, BaseException))

Eccezioni integrate comuni

TypeError: tipo errato. ValueError: tipo corretto, valore errato. KeyError: chiave del dizionario mancante. IndexError: indice della lista fuori dai limiti. AttributeError: attributo inesistente.
# Examples:
# int('abc')       -> ValueError
# d['missing']     -> KeyError
# [1,2][9]         -> IndexError
print('common exceptions')

Il traceback

Quando un'eccezione non viene gestita, Python stampa un traceback: lo stack delle chiamate dal basso (la chiamata più recente) verso l'alto. Impari a leggerlo.
def f(): return 1/0
# f()  # shows traceback
print('traceback demo')

Oggetto eccezione

Ogni eccezione contiene un messaggio. str(e) o e.args restituisce la descrizione. All'interno di except, acceda all'eccezione in questo modo: except ValueError as e.
try:
    int('abc')
except ValueError as e:
    print(type(e).__name__, e)

Intercettazione di più tipi

except (TypeError, ValueError): intercetta entrambi i tipi con un'unica clausola.
def parse(x):
    try:
        return int(x)
    except (TypeError, ValueError):
        return None
print(parse('abc'), parse(None))

Il gruppo di eccezioni (3.11+)

Python 3.11 introduce ExceptionGroup per più eccezioni simultanee, gestite con la sintassi except*.
# Python 3.11+:
# try: ...
# except* ValueError as eg:
#     print(eg.exceptions)
print('exception group demo')

Avvisi ed eccezioni

import warnings; warnings.warn('msg') emette un avviso senza sollevare un'eccezione. Lo usi per deprecazioni ed errori non bloccanti.
import warnings
warnings.warn('This is deprecated', DeprecationWarning)
print('warning issued')

sys.exc_info()

All'interno di un blocco except, sys.exc_info() restituisce (type, value, traceback): è utile per registrare tutti i dettagli dell'eccezione.
import sys
try:
    1/0
except:
    exc_type, exc_val, _ = sys.exc_info()
    print(exc_type, exc_val)

Concatenazione delle eccezioni

raise NewError('msg') from original_exc concatena le eccezioni. L'attributo __cause__ le collega.
try:
    int('abc')
except ValueError as e:
    raise RuntimeError('parse failed') from e

Verifica rapida

Quale eccezione viene sollevata quando si accede a un dizionario con una chiave inesistente?

Riepilogo

Le eccezioni derivano da BaseException. Legga i traceback dal basso verso l'alto. Intercetti le eccezioni con except as e. Tipi comuni: ValueError, TypeError, KeyError, IndexError e AttributeError.

Continui così

Ottimo lavoro! Passi alla lezione successiva per continuare a fare progressi.
Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
76
Lezioni
320

Domande Frequenti

La lezione «Comprendere le eccezioni» è gratuita?

Sì — il testo completo di «Comprendere le eccezioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Comprendere le eccezioni»?

Apprenda che cosa sono le eccezioni e come Python le solleva. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Comprendere le eccezioni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Comprendere le eccezioni
  2. try / except / else / finally
  3. Sollevamento e nuovo sollevamento delle eccezioni
  4. Classi di eccezioni personalizzate
← Torna a Python Academy