Prova, tranne, altro e infine in Python

Un'eccezione è un evento imprevisto che si verifica durante l'esecuzione del programma. È noto anche come a errore in fase di esecuzione . Quando si verifica quell'errore, Pitone genera un'eccezione durante l'esecuzione e che può essere gestita, impedendo l'interruzione del programma.

Esempio: In questo codice, il sistema non può dividere il numero per zero, quindi viene sollevata un'eccezione.

Python3




a> => 5> b> => 0> print> (a> /> b)>

Produzione

Traceback (most recent call last): File '/home/8a10be6ca075391a8b174e0987a3e7f5.py', line 3, in print(a/b) ZeroDivisionError: division by zero 

Gestione delle eccezioni con try, tranne, altro e infine

  • Tentativo : Questo blocco verificherà che si verifichi l'errore escluso
  • Tranne : Qui puoi gestire l'errore
  • Altro : Se non c'è eccezione, questo blocco verrà eseguito
  • Finalmente : Alla fine il blocco viene sempre eseguito o l'eccezione viene generata o meno

Python Try, Except, else e Infine Syntax

try: # Some Code.... except: # optional block # Handling of exception (if required) else: # execute if no exception finally: # Some code .....(always executed) 

Lavorare di' Tentativo' E 'tranne'

Capiamo innanzitutto come funziona il Python prova ed eccetto lavori

  • Primo Tentativo viene eseguita la clausola, ovvero il codice between Tentativo E tranne clausola.
  • Se non c'è eccezione, solo allora Tentativo la clausola verrà eseguita, tranne la clausola non verrà eseguita.
  • Se si verifica un'eccezione, il Tentativo la clausola verrà saltata e tranne la clausola verrà eseguita.
  • Se si verifica qualche eccezione, ma il tranne la clausola all'interno del codice non la gestisce, viene passata all'outer Tentativo dichiarazioni. Se l'eccezione viene lasciata non gestita, l'esecuzione si interrompe.
  • UN Tentativo l'istruzione può averne più di una tranne clausola.

Esempio: Proviamo a prendere l'input intero dell'utente e a lanciare l'eccezione nel blocco tranne.

Python3




# Python code to illustrate working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )>

Produzione:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero 

Cattura più eccezioni in Python

Ecco un esempio che dimostra come utilizzare più clausole eccetto per gestire diverse eccezioni:

Python3




try> :> > x> => int> (> input> (> 'Enter a number: '> ))> > result> => 10> /> x> except> ZeroDivisionError:> > print> (> 'You cannot divide by zero.'> )> except> ValueError:> > print> (> 'Invalid input. Please enter a valid number.'> )> except> Exception as e:> > print> (f> 'An error occurred: {e}'> )>

Produzione:

Enter a number: An error occurred: EOF when reading a line 

Altre clausole in Python

Il codice entra nel blocco else solo se la clausola try non solleva un'eccezione.

Esempio: Altrimenti il ​​blocco verrà eseguito solo quando non si verifica alcuna eccezione .

Python3




# Python code to illustrate working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > else> :> > print> (> 'Yeah ! Your answer is :'> , result)> > # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )>

Produzione:

Yeah ! Your answer is : 1 Sorry ! You are dividing by zero 

Python finalmente Parola chiave

Python fornisce una parola chiave Finalmente , che è sempre eseguito dopo aver provato ed escluso i blocchi. Il blocco infine viene eseguito sempre dopo la normale conclusione del blocco try o dopo il termine del blocco try a causa di qualche eccezione. Anche se ritorni nel blocco eccetto, verrà comunque eseguito il blocco finalmente

Esempio: Proviamo a lanciare l'eccezione nel blocco eccetto e infine eseguiamo l'eccezione che verrà generata o meno

Python3




# Python code to illustrate> # working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional> > # Part as Answer> > result> => x> /> /> y> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> > else> :> > print> (> 'Yeah ! Your answer is :'> , result)> > finally> :> > # this block is always executed> > # regardless of exception generation.> > print> (> 'This is always executed'> )> # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> divide(> 3> ,> 0> )>

Produzione:

Yeah ! Your answer is : 1 This is always executed Sorry ! You are dividing by zero This is always executed