Gestire più eccezioni
Fa parte della sezione Logica e flusso del percorso Python di Coddy. Lezione 65 di 78.
In Python, possiamo gestire diversi tipi di eccezioni in blocchi except separati. Questo ci permette di rispondere in modo diverso in base all’errore specifico che si verifica.
Inizia con una struttura try-except di base:
try:
# Codice che potrebbe sollevare eccezioni
pass
except Exception as e:
# Gestisci qualsiasi eccezione
passPer gestire più eccezioni, aggiungi blocchi except specifici:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Puoi anche gestire più tipi di eccezione in un singolo blocco except:
try:
# Del codice
pass
except (ValueError, TypeError):
print("Invalid input type!")L’ordine dei blocchi except è importante: posiziona sempre le eccezioni più specifiche prima di quelle più generali.
Sfida
FacileCrea una funzione chiamata process_data che:
- Accetta una stringa in input che rappresenta dati potenziali
- Prova a convertirla in un intero, quindi calcola 100 diviso quell'intero
- Restituisce il risultato
- Gestisce almeno 3 possibili eccezioni:
ValueErrorse l'input non può essere convertito in un intero (stampa "Input must be a number!")ZeroDivisionErrorse l'input è 0 (stampa "Cannot divide by zero!")- Qualsiasi altra eccezione con un gestore generico (stampa "An unexpected error occurred!")
Provalo tu
def process_data(input_string):
try:
# Prova a convertire la stringa di input in un numero intero
# Calcola 100 diviso per il valore di input
# Restituisci il risultato
except ValueError:
# Gestisci il caso in cui l'input non può essere convertito in un numero intero
except ZeroDivisionError:
# Gestisci il caso in cui l'input è zero
except:
# Gestisci qualsiasi altra eccezione imprevista
return NoneQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Esplorazione delle variabili
CostantiAssegnazioni multiple di variabiliScambio di variabiliVariabili segnapostoArrotondare i numeriConversione di liste4Applicazione Rubrica
Visualizzare il menuAggiungere un contatto7Insiemi Parte 2
Operazioni matematiche Parte 1Operazioni matematiche Parte 2Riepilogo - Caccia al tesoroSottoinsiemi e sovrainsiemiIterare sugli insiemiRiepilogo - Tracciamento del torneo10Comprensioni di liste di base
La sintassiCreare liste sempliciAggiungere condizioniUsare l'aggregazione dei datiRipasso - La casa delle listeRipasso - Elementi di libertà13Sistema di gestione dell'inventario
Panoramica del progettoAggiungi articolo2Dizionari Parte 1
Che cos'è un dizionario?Creare un dizionarioAccedere ai valoriModificare i dizionariRipasso - Gestore di ricette5Decisioni avanzate
Operatore ternarioVerifiche di appartenenzaVerifiche di identitàErrori di indentazioneRiepilogo - Filtro vacanze8Gestore delle carriere degli studenti
Panoramica del progettoAggiungi studente11Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Sfida di ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di una lista annidata14Funzioni di ordine superiore
La funzione mapLa funzione filterRipasso - Validatore di emailRipasso - Elaboratore di numeri3Dizionari Parte 2
Metodi dei dizionariDizionari annidatiVerificare la presenza di chiaviIterare sui dizionariRipasso - Contatore di frequenza6Insiemi Parte 1
Che cos'è un insieme?Operazioni di baseMetodi degli insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Usare la sommaTrovare il minimo e il massimoOrdinare i dati in modo efficienteRipasso - Ordinatore di dizionari12Gestione di base degli errori
Che cos'è la gestione degli errori?Il blocco try ed exceptGestire più eccezioniRiepilogo - Errori nel carrelloEsercitati da solo: Compilatore Python online