Eroarea în Python poate fi de două tipuri, adică erori de sintaxă și excepții. Erorile sunt problemele dintr-un program din cauza cărora programul va opri execuția. Pe de altă parte, sunt ridicate excepții atunci când apar unele evenimente interne care modifică fluxul normal al programului.
Notă: Pentru mai multe informații, consultați Erori și excepții în Python
Unele dintre erorile comune de excepție sunt:
- IOError: dacă fișierul nu poate fi deschis KeyboardInterrupt: când o tastă nesolicitată este apăsată de utilizator ValueError: când funcția încorporată primește un argument greșit EOFError: dacă End-Of-File este lovit fără a citi date ImportError: dacă nu poate găsi modulul
Încercați, cu excepția în Python
Declarația Try and Except este utilizată pentru a gestiona aceste erori în codul nostru în Python. Blocul try este folosit pentru a verifica anumite erori de cod, adică codul din interiorul blocului try se va executa atunci când nu există nicio eroare în program. În timp ce codul din blocul except se va executa ori de câte ori programul întâlnește o eroare în blocul try precedent.
Sintaxă:
try: # Some Code except: # Executed if error in the # try block>
Cum funcționează try()?
- În primul rând, încerca clauza este executată, adică codul dintre încerca.
- Dacă nu există nicio excepție, atunci doar încerca clauza va rula, cu exceptia clauza este terminată.
- Dacă apare vreo excepție, încerca clauza va fi omisă și cu exceptia clauza va rula.
- Dacă apare vreo excepție, dar cu exceptia clauza din cod nu o gestionează, este transmisă în exterior încerca declarații. Dacă excepția este lăsată netratată, atunci execuția se oprește.
- A încerca declarația poate avea mai multe cu exceptia clauză
Cod 1: Nicio excepție, așa că încerca clauza va rula.
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>)> |
>
>
Spațiu auxiliar: O(1)
Ieșire:
Yeah ! Your answer is : 1>
Cod 1: Există o excepție deci numai cu exceptia clauza va rula.
Python3
linux mint scorțișoară vs mate
# 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>,>0>)> |
>
>
Ieșire:
Sorry ! You are dividing by zero>
Cod 2: Celălalt mod de a scrie cu exceptia declarația, este afișată mai jos și, în acest fel, acceptă doar excepții pe care trebuie să le prindeți sau puteți verifica ce eroare are loc.
Python3
string compara cu java
# code> def> divide(x, y):> >try>:> ># Floor Division : Gives only Fractional Part as Answer> >result>=> x>/>/> y> >print>(>'Yeah ! Your answer is :'>, result)> >except> Exception as e:> ># By this way we can know about the type of error occurring> >print>(>'The error is: '>,e)> > divide(>3>,>'GFG'>)> divide(>3>,>0>)> |
>
>
Ieșire:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero>
Clauza Else
În Python, puteți folosi și clauza else din blocul try-except, care trebuie să fie prezent după toate clauzele except. Codul intră în blocul else numai dacă clauza try nu ridică o excepție.
Sintaxă:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception>
Cod:
Python3
# Program to depict else clause with try-except> > # Function which returns a/b> def> AbyB(a , b):> >try>:> >c>=> ((a>+>b)>/>/> (a>->b))> >except> ZeroDivisionError:> >print> (>'a/b result in 0'>)> >else>:> >print> (c)> > # Driver program to test above function> AbyB(>2.0>,>3.0>)> AbyB(>3.0>,>3.0>)> |
>
>
Ieșire:
-5.0 a/b result in 0>
În sfârșit, cuvânt cheie în Python
Python furnizează un cuvânt cheie în final, care este întotdeauna executat după blocurile try și exceptând. Blocul final se execută întotdeauna după terminarea normală a blocului try sau după ce blocul try se termină din cauza unor excepții.
Sintaxă:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)>
Cod:
Python3
abonament azure
# Python program to demonstrate finally> > # No exception Exception raised in try block> try>:> >k>=> 5>/>/>0> # raises divide by zero exception.> >print>(k)> > # handles zerodivision exception> except> ZeroDivisionError:> >print>(>'Can't divide by zero'>)> > finally>:> ># this block is always executed> ># regardless of exception generation.> >print>(>'This is always executed'>)> |
>
>
Ieșire:
Can't divide by zero This is always executed>
Articole similare:
- Întrebări de ieșire
- Gestionarea excepțiilor în Python
- Excepții definite de utilizator