logo

Kokeile, paitsi, muuta ja lopuksi Pythonissa

Poikkeus on odottamaton tapahtuma, joka tapahtuu ohjelman suorituksen aikana. Se tunnetaan myös nimellä a suorituksenaikainen virhe . Kun tämä virhe tapahtuu, Python luo poikkeuksen suorituksen aikana ja se voidaan käsitellä, mikä estää ohjelmaasi keskeytymästä.

Esimerkki: Tässä koodissa järjestelmä ei voi jakaa numeroa nollalla, joten poikkeus tehdään.



Python 3








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

>

>

Lähtö

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

Poikkeuskäsittely kokeilulla paitsi, else, ja lopuksi

  • Yrittää : Tämä lohko testaa poikkeavan virheen tapahtuvan
  • Paitsi : Täällä voit käsitellä virhettä
  • Muu : Jos poikkeusta ei ole, tämä lohko suoritetaan
  • Lopulta : Lopuksi lohko suoritetaan aina joko luodaanko poikkeus tai ei

Python Try, paitsi, else ja lopuksi syntaksi

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

Työskentely ' yrittää' ja 'paitsi'

Ymmärretään ensin, kuinka Python yrittää paitsi toimii

  • Ensimmäinen yrittää lauseke suoritetaan eli koodi välillä yrittää ja paitsi lauseke.
  • Jos ei ole poikkeusta, niin vain yrittää lauseke tulee voimaan, paitsi lauseketta ei panna täytäntöön.
  • Jos jokin poikkeus tapahtuu, yrittää lauseke ohitetaan ja paitsi lauseke tulee voimaan.
  • Jos jokin poikkeus tapahtuu, mutta paitsi koodin lauseke ei käsittele sitä, vaan se välitetään ulommalle yrittää lausunnot. Jos poikkeus jätetään käsittelemättä, suoritus pysähtyy.
  • A yrittää lausekkeessa voi olla useampi kuin yksi paitsi lauseke.

Esimerkki: Yritetään ottaa käyttäjän kokonaisluku ja heittää poikkeus paitsi lohkoon.

Python 3




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

>

>

Lähtö:

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

Pythonissa on useita poikkeuksia

Tässä on esimerkki, joka osoittaa, kuinka käyttää useita paitsi lausekkeita erilaisten poikkeusten käsittelemiseen:

Python 3




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

>

>

Lähtö:

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

Muut lausekkeet Pythonissa

Koodi tulee else-lohkoon vain, jos try-lause ei aiheuta poikkeusta.

Esimerkki: Muussa tapauksessa lohko suoritetaan vain kun poikkeusta ei tapahdu .

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

>

>

Lähtö:

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

Python vihdoin avainsana

Python tarjoaa avainsanan vihdoinkin , mikä on aina toteutettu kokeilun jälkeen ja paitsi lohkot. Lopullinen lohko suoritetaan aina normaalin try-lohkon päättymisen jälkeen tai sen jälkeen, kun try-lohko päättyy jonkin poikkeuksen vuoksi. Vaikka palaat paitsi lohkoon, lopullinen lohko suoritetaan silti

Esimerkki: Yritetään heittää poikkeus paitsi lohkoon ja Lopuksi suorittaa joko poikkeuksen syntyy tai ei

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

>

>

Lähtö:

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