Prova/eccetto Python e gestione degli errori
Evita che i tuoi script Python si blocchino. Scopri i blocchi try, tranne, infine e come generare correttamente le eccezioni personalizzate.
Panoramica
Nel mondo reale della programmazione, gli errori sono del tutto inevitabili. I file potrebbero essere eliminati, le connessioni di rete potrebbero interrompersi oppure un utente potrebbe inserire una lettera quando lo script prevedeva un numero. Se questi scenari si verificano senza protezioni, Python interrompe l'esecuzione e lancia un'eccezione (un errore di runtime), mandando in crash l'intero programma. La gestione degli errori è l’arte di anticipare e gestire con garbo questi fallimenti.
Il fondamento della gestione degli errori in Python è la struttura a blocchi "try" e "eccetto". Inserisci il codice potenzialmente pericoloso all'interno del blocco "try". Python tenterà di eseguirlo. Se si verifica un errore, invece di bloccarsi, Python intercetta l'eccezione e salta immediatamente giù per eseguire il codice contenuto nel blocco "eccetto". Ciò consente al programma di ripristinarsi, visualizzare un messaggio di errore amichevole e continuare a funzionare.
È una best practice fondamentale individuare eccezioni specifiche e mirate anziché scrivere un blocco generale "eccetto:". Ad esempio, rilevare `FileNotFoundError` o `ValueError` garantisce esplicitamente che stai gestendo esattamente il problema previsto, anziché mascherare accidentalmente bug non correlati (come un errore di sintassi) di cui hai veramente bisogno di essere informato.
Python fornisce anche un blocco opzionale `else`, che viene eseguito solo se il blocco `try` è stato completato con successo senza generare errori. Questo è il luogo perfetto per inserire la logica che dipende assolutamente dal successo dell'operazione pericolosa. Inoltre, il blocco "finalmente" fornisce un modo per eseguire il codice indipendentemente da ciò che accade, indipendentemente dal fatto che si sia verificato un errore o meno. Il blocco "finalmente" è vitale per le azioni di pulizia, come la chiusura delle connessioni al database o il rilascio dei blocchi sui file.
Oltre a rilevare gli errori, Python consente agli sviluppatori di attivarli esplicitamente utilizzando la parola chiave "raise". La generazione di un'eccezione ti consente di applicare vincoli rigorosi nella tua logica, rifiutando i dati non validi prima che danneggino lo stato dell'applicazione. Definendo classi di eccezioni personalizzate che ereditano dalla classe "Exception" di base di Python, gli sviluppatori possono creare gerarchie di errori altamente specifiche del dominio per applicazioni aziendali di grandi dimensioni.
Codice e output di esecuzione
Creazione di sicurezza strutturale quando si interagisce con strutture di file potenzialmente pericolose o inesistenti.
def divide_numbers(a, b):
try:
result = a / b
except ZeroDivisionError:
return "Error: Cannot divide by zero!"
except TypeError:
return "Error: Both arguments must be numbers."
else:
return f"The result is {result}"
finally:
print("Execution completed.")
print(divide_numbers(10, 2))
print(divide_numbers(10, 0))Execution completed.
The result is 5.0
Execution completed.
Error: Cannot divide by zero!Implementazione passo dopo passo
- Convalida degli invii dei moduli utente
- Garantire che le richieste di rete non si blocchino in caso di timeout
- Chiusura sicura delle connessioni al database in un blocco finale
Domande frequenti
Qual è la parola chiave "aumento"?
La parola chiave raise viene utilizzata per sollevare un'eccezione intenzionalmente. È possibile definire il tipo di errore da generare e il testo da stampare per l'utente.
Argomenti correlati
Padroneggiare le funzioni Python. Scopri come scrivere codice riutilizzabile utilizzando def, definire argomenti, restituire valori e comprendere l'ambito a livello locale e globale.
Classi Python e programmazione orientata agli oggettiUn'introduzione completa alle classi, agli oggetti, all'ereditarietà e ai concetti OOP di Python. Crea modelli di dati robusti e scala le tue applicazioni Python.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Come ordinare un elenco in Python
Scopri come ordinare un elenco in Python utilizzando il metodo sort() e la funzione sorted(). Scopri l'ordinamento delle chiavi personalizzato e gli esempi di ordine inverso.
Foglio informativo sui tipi di eccezioni ed errori incorporati in Python
Guida di riferimento per i tipi di errore comuni di Python. Scopri come eseguire il debug di ValueError, TypeError, IndexError, KeyError e generare eccezioni.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.