logo

Python Kokeile paitsi

Pythonin virheitä voi olla kahta tyyppiä, eli syntaksivirheet ja poikkeukset. Virheet ovat ohjelman ongelmia, joiden vuoksi ohjelma pysäyttää suorituksen. Toisaalta poikkeuksia syntyy, kun tapahtuu sisäisiä tapahtumia, jotka muuttavat ohjelman normaalia kulkua.
Huomautus: Saat lisätietoja kohdasta Pythonin virheet ja poikkeukset
Jotkut yleisimmistä poikkeusvirheistä ovat:

    IOError: jos tiedostoa ei voi avata KeyboardInterrupt: kun käyttäjä painaa ei-toivottua näppäintä ValueError: kun sisäänrakennettu toiminto vastaanottaa väärän argumentin EOFEror: jos End-Of-File osuu lukematta tietoja TuontiError: jos se ei löydä moduulia

Kokeile paitsi Pythonissa

Try and Except -lausetta käytetään käsittelemään näitä virheitä koodissamme Pythonissa. Try-lohkoa käytetään tarkistamaan jokin koodi virheiden varalta, eli try-lohkon sisällä oleva koodi suoritetaan, kun ohjelmassa ei ole virhettä. Sen sijaan koodi paitsi-lohkon sisällä suoritetaan aina, kun ohjelma kohtaa virheen edellisessä try-lohkossa.



Syntaksi:

try: # Some Code except: # Executed if error in the # try block>

Miten try() toimii?

  • Ensinnäkin yrittää lauseke suoritetaan eli koodi välillä yrittää.
  • Jos ei ole poikkeusta, niin vain yrittää lauseke tulee voimaan, paitsi lauseke on valmis.
  • Jos jokin poikkeus tapahtuu, yrittää lauseke ohitetaan ja paitsi lauseke tulee voimaan.
  • Jos jokin poikkeus tapahtuu, mutta paitsi koodin sisällä oleva lauseke ei käsittele sitä, vaan se välitetään ulospäin yrittää lausunnot. Jos poikkeus jätetään käsittelemättä, suoritus pysähtyy.
  • A yrittää lausekkeessa voi olla useampi kuin yksi paitsi lauseke

Koodi 1: Ei poikkeus, joten yrittää lauseke tulee voimaan.



Python 3






# 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>)>

>

>

Aputila: O(1)

baudinopeus arduinossa

Lähtö:

Yeah ! Your answer is : 1>

Koodi 1: On siis vain poikkeus paitsi lauseke tulee voimaan.

Python 3




# 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>)>

>

>

Lähtö:

Sorry ! You are dividing by zero>

Koodi 2: Toinen tapa kirjoittaa paitsi lauseke, näkyy alla ja tällä tavalla se hyväksyy vain poikkeukset, jotka sinun on tarkoitus saada kiinni, tai voit tarkistaa, mikä virhe tapahtuu.

Python 3




# 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>)>

>

>

Lähtö:

The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero>

Muu Clause

Pythonissa voit käyttää try-except-lohkossa myös else-lausetta, jonka on oltava läsnä kaikkien paitsi lausekkeiden jälkeen. Koodi tulee else-lohkoon vain, jos try-lause ei aiheuta poikkeusta.

Syntaksi:

try: # Some Code except: # Executed if error in the # try block else: # execute if no exception>

Koodi:

Python 3




# 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>)>

>

>

Lähtö:

-5.0 a/b result in 0>

Lopuksi avainsana Pythonissa

Python tarjoaa lopulta avainsanan, joka suoritetaan aina kokeilun jälkeen, paitsi lohkot. Viimeinen lohko suoritetaan aina try-lohkon normaalin päättymisen jälkeen tai sen jälkeen, kun try-lohko päättyy joidenkin poikkeusten vuoksi.

Syntaksi:

try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)>

Koodi:

Python 3




# 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'>)>

>

>

Lähtö:

Can't divide by zero This is always executed>

Aiheeseen liittyvät artikkelit:

  • Lähtökysymykset
  • Poikkeuskäsittely Pythonissa
  • Käyttäjän määrittämät poikkeukset