Cattura tutte le eccezioni in Python

Manav Narula 10 ottobre 2023
  1. Usa la classe Exception per catturare tutte le eccezioni in Python
  2. Usa la classe BaseException per catturare tutte le eccezioni in Python
Cattura tutte le eccezioni in Python

Usiamo il blocco try e except per gestire le eccezioni. Il blocco try contiene del codice che può sollevare un’eccezione. Se viene sollevata un’eccezione, allora possiamo specificare il codice alternativo nel blocco except che può essere eseguito. Sappiamo di avere diversi tipi di eccezioni in Python per avere più istruzioni except per diverse eccezioni.

Per esempio,

try:
    raise ValueError()
except ValueError:
    print("Value Error")
except KeyError:
    print("Key Error")

Produzione:

Value Error

Tuttavia, a volte, potremmo desiderare un blocco generale except che possa catturare tutte le eccezioni. È molto semplice implementarlo. Se non menzioniamo alcuna eccezione specifica nel blocco except, allora cattura qualsiasi eccezione che potrebbe verificarsi.

Il codice seguente implementa questo.

try:
    # Your
    # Code
    pass
except:
    print("Exception Encountered")

Tuttavia, non è consigliabile utilizzare questo metodo perché rileva anche eccezioni come KeyBoardInterrupt e SystemExit, che di solito si desidera ignorare.

Usa la classe Exception per catturare tutte le eccezioni in Python

Possiamo evitare gli errori menzionati sopra semplicemente catturando la classe Exception. Tutte le eccezioni incorporate e non di sistema, così come le eccezioni definite dall’utente, sono generalmente derivate da questa classe.

Per esempio,

try:
    # Your
    # Code
    pass
except Exception as e:
    print("Exception Encountered")

Usa la classe BaseException per catturare tutte le eccezioni in Python

Va notato che anche il metodo sopra può omettere alcune eccezioni. Possiamo anche usare la classe BaseException, che è in cima alla gerarchia. Potrebbe essere richiesto in alcuni casi e possiamo vederne l’uso nel codice seguente.

try:
    # Your
    # Code
    pass
except BaseException as e:
    print("Exception Encountered")

In questo tutorial, abbiamo discusso alcuni metodi, che potrebbero non essere perfetti ma possono catturare la maggior parte delle eccezioni sollevate. In generale, non è consigliabile rilevare tutte le eccezioni, quindi fai attenzione a qualsiasi metodo tu scelga di utilizzare.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - Python Exception