[python] Jak ukoncit podprogram po fatalnej chybe bez toho aby sa ukoncil aj hlavny program
Petr Prikryl
PrikrylP na skil.cz
Středa Leden 31 11:56:34 CET 2007
> V pripade takto jednoducheho programu ktory ma len jednu
> funkciu by return pomohol, pretoze return ukoncuje funkciu.
> Ale co v pripade realneho programu, ktory ma viac funkcii?
> fkt1()
> fkt2()
> ....
> Ak v niektorej funkcii nastane fatalna chyba chcem aby sa
> ukoncil cely program a nepokracoval dalej. Nechcem, aby sa
> ukoncila len funkcia a pokracovalo sa v dalsej funkcii.
V takovém případě to vypadá na klasický příklad
použití výjimky. Můžu ji vyvolat odkudkoliv a můžu
ji odchytit na vhodném místě.
class KritickaChyba(Exception):
pass
...
def run(self):
for j in range(9):
if j!=7:
print "running..."
else:
print "j = %d" %j
print "Stop"
raise KritickaChyba()
...
from consolepgm import pgm
#
print "spustam program..."
try:
mypgm=pgm()
mypgm.run()
except KritickaChyba:
pass
print "koniec programu"
(Nezkoušel jsem si vytvořit testovací příklad.
Píšu to z hlavy. Ověř si to.)
pepr
Další informace o konferenci Python