Virheensietoinen ohjelmointi
461 531 626
Python tukee virheensietoista ohjelmointia. try - except -rakenteella voidaan varautua ohjelman suorituksen aikaisiin virheisiin ja saada ohjelma jatkamaan toimintaansa virheestä huolimatta.
Yksi melko yleinen virhe ohjelman suorituksen aikana on nollalla jakaminen. Esimerkkiohjelmassa luetaan näppäimistöltä jaettava ja jakaja.
luku1 =float (input ("Anna jaettava! " )) luku2 =float (input ("Anna jakaja! " )) tulos = luku1 / luku2"jaettuna luvulla" ,luku2,"on" ,tulos)
Mikäli jakajaksi annetaan nolla, ohjelman suoritus keskeytyy virheilmoitukseen:
>>> = RESTART: C:/Users/timohei/Soveltava ohjelmointi/try-except.pyAnna jaettava! 3Anna jakaja! 0Traceback (most recent call last): File "C:/Users/timohei/Soveltava ohjelmointi/try-except.py", line 3, in >>>tulos = luku1 / luku2 ZeroDivisionError: float division by zero
Vihreilmoituksesta nähdään virheen tyyppi
luku1 =float (input ("Anna jaettava! " )) luku2 =float (input ("Anna jakaja! " ))try: tulos = luku1 / luku2except ZeroDivisionError :"Jaettiin nollalla, tulosta ei ole määritelty." )else :"jaettuna luvulla" ,luku2,"on" ,tulos)
Sijoittamalla jakajan kysely "ikuiseen"
luku1 =float (input ("Anna jaettava! " ))while True : luku2 =float (input ("Anna jakaja! " ))try: tulos = luku1 / luku2except ZeroDivisionError :"Jaettiin nollalla, tulosta ei ole määritelty." )else :"jaettuna luvulla" ,luku2,"on" ,tulos)break