Portál AbcLinuxu, 14. července 2025 07:11


Dotaz: Python: zachycení chyby

12.8.2010 22:09 kuba
Python: zachycení chyby
Přečteno: 181×
Odpovědět | Admin
Ahoj, potřebuju odchytit a sám ošetřit chybu, kterou vykazuje volání někde mnohem dál - nějaká knihovní funkce to dělá. Aby mi nevyskočila ta chyba už hned jak nastane. V Javě si matně pamatuju že je nějaké "...throwns Exception", ale v Pythonu nevím... Například mám kód:

try:
  command1()
  module.command2()             //tento někde volá funkci kde nastane URLError: 110 Spojení bylo příliš dlouho neaktivní
  command3()
except:
  command4
  print "chyba"
A já bych potřeboval tu chybu URLError ošetřit až na místě command4. Nevíte někdo jak na to?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

mess avatar 12.8.2010 22:18 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Python: zachycení chyby
Odpovědět | | Sbalit | Link | Blokovat | Admin
Něco takového?
error_occured = False
try:
  command1()
  module.command2()
except:
  error_occured = True

command3()
command4

if error_occured:
  print "chyba"
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
12.8.2010 22:42 kuba
Rozbalit Rozbalit vše Re: Python: zachycení chyby
Problém je právě v tom, že ten Error vyhodí Internal server error, který zapříčiní, že se mi nenačte zbytek toho mého pluginu, kde bych to ošetřil :(

(je to plugin do Tracu)
12.8.2010 22:54 kuba
Rozbalit Rozbalit vše Re: Python: zachycení chyby
Tak už se mi to povedlo nějak pochybně obejít,-) díky.
12.8.2010 23:18 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Python: zachycení chyby
Odpovědět | | Sbalit | Link | Blokovat | Admin
Výše zmíněný příklad zachytí všechny výjimky, které mohou nastat v command1() a module.command2(). Pokud bys chtěl ošetřit pouze zmíněnou chybu v konkrétním příkazu:
err = False
command1()
try: 
   module.command2()
except URLError as why:
   err = why
command3()
command4()
if err: print err
....
13.8.2010 00:45 chrono
Rozbalit Rozbalit vše Re: Python: zachycení chyby
Odpovědět | | Sbalit | Link | Blokovat | Admin
command1()
try:
	module.command2()
except:
	command4()
	print "chyba"
else:
	command3()

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.