Re: [python] nevznik objektu

2010-03-24 Tema obsahu David Rohleder
Vladimir Macek píše v Út 23. 03. 2010 v 23:51 +0100:
 On 19.3.2010 00:04, Jirka Vejrazka wrote:
  Davide, smir se s tim. Vyjimky jsou v Pythonu zavedeny, chapany a
  podporovany zpusob reagovani na chybove stavy, zejmena na
  neocekavana data.
 
 A i to je zbytecne uzky pohled na to, na co se daji vyjimky pouzivat. Za
 prve, nekdy vubec nenesou chybovou informaci, ani nejsou spojeny
 necekanymi daty. Prikladem je built-in
 http://docs.python.org/library/exceptions.html#exceptions.StopIteration
 Tedy vyjimka, kterou iterator indikuje, ze je vyprodano.
 
 Za druhe, vyjimky jsou normalni objekty, ktere mohou nest libovolna
 data. Jakoby promenne, ale zpusobi zmenu provadeni programu zcela jinym,
 ale predem danym a casto uzitecnym smerem (z vnoreni ven).

Přesně na to jsem narážel, když jsem říkal, že někdo používá výjimky
jako lepší goto (kterým navíc dokážeš vyskočit z funkce).

  Nejcasteji
 skutecne nesou podrobnou informaci o chybe vykonavani, ale nikdo nikoho
 neomezuje v rozsireni tohoto modelu podle aktualnich potreb.
 
 
  Zkus to chvili nechat odlezet, treba se ti to zacne libit :)
 
 Za tohle se taky velmi primlouvam.
 
 Davide, podle toho, co pisete, jste na zacatku: Syntaxi a knihovnu treba
 zvladate, ale jeste vas ceka krok prijmouti zpusobu mysleni, ktery
 zkusenemu pythonistovi pomaha dosahnout vynikajici vykonnosti a elegance
 kodu. To neni vycitka, naopak, jsem rad, ze se ucite a my ostatni vam
 radi pomuzeme.
 
 Jen to, ze predcasne soudite a snazite se roubovat novy pristup na drive
 naucene (coz clovek ma clovek tendenci povazovat za to lepsi), to je
 mirne iritujici.

Já to nějak nesoudím, akorát si snažím objasnit některé věci. Imho jsou
napřiklad některé z těch syntaktických cukrů špatně - např. odstranění
závorek z generátorů (i*i for i in range(4)). Ne, že by se na to nedalo
zvyknout, akorát to tady trochu přehnali.

Ještě pořád mně vy pythonu přijdou některé věci poměrně nešikovně
vyřešené, ale to se časem vsákne.



___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-23 Tema obsahu Vladimir Macek
On 19.3.2010 00:04, Jirka Vejrazka wrote:
 Davide, smir se s tim. Vyjimky jsou v Pythonu zavedeny, chapany a
 podporovany zpusob reagovani na chybove stavy, zejmena na
 neocekavana data.

A i to je zbytecne uzky pohled na to, na co se daji vyjimky pouzivat. Za
prve, nekdy vubec nenesou chybovou informaci, ani nejsou spojeny
necekanymi daty. Prikladem je built-in
http://docs.python.org/library/exceptions.html#exceptions.StopIteration
Tedy vyjimka, kterou iterator indikuje, ze je vyprodano.

Za druhe, vyjimky jsou normalni objekty, ktere mohou nest libovolna
data. Jakoby promenne, ale zpusobi zmenu provadeni programu zcela jinym,
ale predem danym a casto uzitecnym smerem (z vnoreni ven). Nejcasteji
skutecne nesou podrobnou informaci o chybe vykonavani, ale nikdo nikoho
neomezuje v rozsireni tohoto modelu podle aktualnich potreb.


 Zkus to chvili nechat odlezet, treba se ti to zacne libit :)

Za tohle se taky velmi primlouvam.

Davide, podle toho, co pisete, jste na zacatku: Syntaxi a knihovnu treba
zvladate, ale jeste vas ceka krok prijmouti zpusobu mysleni, ktery
zkusenemu pythonistovi pomaha dosahnout vynikajici vykonnosti a elegance
kodu. To neni vycitka, naopak, jsem rad, ze se ucite a my ostatni vam
radi pomuzeme.

Jen to, ze predcasne soudite a snazite se roubovat novy pristup na drive
naucene (coz clovek ma clovek tendenci povazovat za to lepsi), to je
mirne iritujici.

-- 
\//\/\ : Vladimir Macek : http://macek.sandbox.cz : +420 608 978 164

attachment: macek.vcf___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] nevznik objektu

2010-03-18 Tema obsahu azurIt
Skor by som to urobil cez vynimku - konstruktor v pripade zlej IPcky vyvola 
nejaku vynimku a objekt vytvoris takto:

try:
  ipaddr = IP(192.1023.neco.1)
except tvoja_vynimka:
  print zadavas blby vstup


Ak 'ipaddr' potrebujes mat na None aj dalej v kode, tak este do except prihod:
ipaddr = None


-Pôvodná správa-
Od: David Rohleder [mailto:da...@ics.muni.cz]
Komu: python@py.cz
Predmet: [python] nevznik objektu


Ahoj,

je možné, aby nevznikl objekt, který zrovna vytvářím? Příklad - mám
třídu typu IP adresa, v konstruktoru předávám řetězec IPadresy. Chtěl
bych, aby v případě, že IP adresa není validní, objekt vůbec nevznikl.
Tj. aby konstruktor vrátil None:

 ipaddr = IP(192.1023.neco.1)
 ipaddr
None

chtěl jsem pak třeba udělat:

if not ipaddr:
print zadavas blby vstup



chtěl jsem to vyřešit asi takto:

class IP(object):
def __init__(self, IPadresa):
.
if chyba: return None



Jenomže konstruktor vrací vždycky None, tj. touto cestou to nejde.

Zatím jediné, co mne napadlo, je vyřešit to pomocí výjimky, tj.např

try:
ipaddr = IP(192.168.34536.45)
except ValueError:
ipaddr = None

Ale myslím, že kdyby objekt vůbec nevznikl, tak by to bylo lepší. Jde
to, nebo to nejde?

D.


--
David Rohleder da...@ics.muni.cz

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu Petr Messner
Ahoj

Že by konstruktor udělal něco tak, aby žádný objekt nevznikl, nejde
(to není bug). Možností je několik:

 - vyhazovat výjimku (jak již bylo zmíněno)
 - nevolat konstruktor (tedy nevytvářet objekt), ale volat funkci,
která sama vytvoří objekt, nebo vrátí None - podle mě nejlepší řešení
 - vytvořit objekt, který při porovnání s False vrátí True (lze
implementovat přetížením/vytvořením metody __nonzero__)

BTW. počítáš i s IPv6, že jo? :)

Petr Messner


2010/3/18 David Rohleder da...@ics.muni.cz:
 Ahoj,

 je možné, aby nevznikl objekt, který zrovna vytvářím? Příklad - mám
 třídu typu IP adresa, v konstruktoru předávám řetězec IPadresy. Chtěl
 bych, aby v případě, že IP adresa není validní, objekt vůbec nevznikl.
 Tj. aby konstruktor vrátil None:

 ipaddr = IP(192.1023.neco.1)
 ipaddr
 None

 chtěl jsem pak třeba udělat:

 if not ipaddr:
        print zadavas blby vstup



 chtěl jsem to vyřešit asi takto:

 class IP(object):
        def __init__(self, IPadresa):
                .
                if chyba: return None



 Jenomže konstruktor vrací vždycky None, tj. touto cestou to nejde.

 Zatím jediné, co mne napadlo, je vyřešit to pomocí výjimky, tj.např

 try:
        ipaddr = IP(192.168.34536.45)
 except ValueError:
        ipaddr = None

 Ale myslím, že kdyby objekt vůbec nevznikl, tak by to bylo lepší. Jde
 to, nebo to nejde?

 D.


 --
 David Rohleder da...@ics.muni.cz

 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu Jirka Vejrazka
Ahoj,

  velmi standardni reseni je vyjimka, typicky ValueError (v tomto
pripade). Vracet None v pripade spatnych vstupnich dat neni uplne
nejlepsi napad, pokud to ma byt univerzalne pouzitelny kod (pokud jde
o tvou vlastni funkci pro interni pouziti, tak si tam samozrejme
naprogramuj, co ti zrovna vyhovuje).

  Jinak na IP adresy existuji velmi dobre napsane moduly, ale to
predpokladam vis :)

   jirka

P.S. Ciste technicky vzato, asi by se dalo zajistit aby ten objekt
nevzniknul, pomoci metaclass. Ale bez znalosti kontextu se mi to zda
zbytecne slozite.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu David Rohleder
Petr Messner píše v Čt 18. 03. 2010 v 17:48 +0100:
 Ahoj
 
 Že by konstruktor udělal něco tak, aby žádný objekt nevznikl, nejde
 (to není bug). Možností je několik:
 
  - vyhazovat výjimku (jak již bylo zmíněno)

musím přiznat, že řešení pomocí výjimek mně přijde jako s kanonem na
vrabce, ikdyž to má svoji logiku. Pokud vnímám výjimku jako nějakou
zásadně chybovou situaci, tak to do této věci nesedí, protože s chybným
vstupem se má počítat a kód by ho měl ošetřovat.

Možná jsem prostě jenom příliš staromódní, začínal jsem programovat v
jazycích, kde výjimky nebyly a python je jazyk, kde se výjimky dají
používat téměř jako lék na cokoliv.

  - nevolat konstruktor (tedy nevytvářet objekt), ale volat funkci,
 která sama vytvoří objekt, nebo vrátí None - podle mě nejlepší řešení

To zní zajímavě, ale moc mně to nezapadá do takového toho objektového
pohledu na svět. Nutno přiznat, že je to asi celkem jedno, z venku
modulu to vypadá stejně jako přímo ten konstruktor objektu.

  - vytvořit objekt, který při porovnání s False vrátí True (lze
 implementovat přetížením/vytvořením metody __nonzero__)

Tak o __nonzero__ jsem nevěděl. zajímavé.

 
 BTW. počítáš i s IPv6, že jo? :)

Ne :-) není správně podporován na druhé straně.

D.


 
 Petr Messner
 
 
 2010/3/18 David Rohleder da...@ics.muni.cz:
  Ahoj,
 
  je možné, aby nevznikl objekt, který zrovna vytvářím? Příklad - mám
  třídu typu IP adresa, v konstruktoru předávám řetězec IPadresy. Chtěl
  bych, aby v případě, že IP adresa není validní, objekt vůbec nevznikl.
  Tj. aby konstruktor vrátil None:
 
  ipaddr = IP(192.1023.neco.1)
  ipaddr
  None
 
  chtěl jsem pak třeba udělat:
 
  if not ipaddr:
 print zadavas blby vstup
 
 
 
  chtěl jsem to vyřešit asi takto:
 
  class IP(object):
 def __init__(self, IPadresa):
 .
 if chyba: return None
 
 
 
  Jenomže konstruktor vrací vždycky None, tj. touto cestou to nejde.
 
  Zatím jediné, co mne napadlo, je vyřešit to pomocí výjimky, tj.např
 
  try:
 ipaddr = IP(192.168.34536.45)
  except ValueError:
 ipaddr = None
 
  Ale myslím, že kdyby objekt vůbec nevznikl, tak by to bylo lepší. Jde
  to, nebo to nejde?
 
  D.
 
 
  --
  David Rohleder da...@ics.muni.cz
 
  ___
  Python mailing list
  Python@py.cz
  http://www.py.cz/mailman/listinfo/python
 
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu David Rohleder
Jirka Vejrazka píše v Čt 18. 03. 2010 v 18:09 +0100:
 Ahoj,
 
   velmi standardni reseni je vyjimka, typicky ValueError (v tomto
 pripade). Vracet None v pripade spatnych vstupnich dat neni uplne
 nejlepsi napad, pokud to ma byt univerzalne pouzitelny kod (pokud jde
 o tvou vlastni funkci pro interni pouziti, tak si tam samozrejme
 naprogramuj, co ti zrovna vyhovuje).

proč ti přijde vracet None jako špatný nápad? Mně to naopak přijde jako
dobrý nápad. můžu psát takové to 
if objekt: něco

 
   Jinak na IP adresy existuji velmi dobre napsane moduly, ale to
 predpokladam vis :)

Narazil jsem jenom na netaddr a ipy, ale netaddr je příliš velký balík
na to, co potřebuju a ipy zase nedělá to co chci. Nejsem příznivcem
používání příliš velkých knihoven, zvlášť když je dobře neznám. Těch pár
funkcí naprogramuju rychleji než bych nastudoval použití tech knihoven.

A navíc, beru to trochu jako cestu jak se python trochu naučit, pořád
narážím na samé zajímavosti.

Třeba mne teď dostal rozdíl mezi
for i in f.readline():

a 

for i in f.readlines():

pořád jsem si říkal, co to dělá za blbosti a pak jsem se musel bít do
hlavy, co jsem za pako :-)


D.



 
jirka
 
 P.S. Ciste technicky vzato, asi by se dalo zajistit aby ten objekt
 nevzniknul, pomoci metaclass. Ale bez znalosti kontextu se mi to zda
 zbytecne slozite.
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu azurIt
musím přiznat, že řešení pomocí výjimek mně přijde jako s kanonem na
vrabce, ikdyž to má svoji logiku. Pokud vnímám výjimku jako nějakou
zásadně chybovou situaci, tak to do této věci nesedí, protože s chybným
vstupem se má počítat a kód by ho měl ošetřovat.


S tymto absolutne nesuhlasim. Ak hovoris o nejakom peknom osetreni chybneho 
vstupu (typu vypisanie chybovej spravy), tak toto _absolutne_ nie je ulohou 
funkcie ci objektu, ale konecnej aplikacie, ktora bude danu funkciu/objekt 
pouzivat. Osetrenie vstupu je samozrejme nutnost ale nie tymto sposobom - 
proste staci urobit aby funkcia 'zhucala' a nesnazila sa pokracovat (a pripadne 
nieco pokazit). Vynimka je na toto priamo stvorena.




Možná jsem prostě jenom příliš staromódní, začínal jsem programovat v
jazycích, kde výjimky nebyly a python je jazyk, kde se výjimky dají
používat téměř jako lék na cokoliv.

  - nevolat konstruktor (tedy nevytvářet objekt), ale volat funkci,
 která sama vytvoří objekt, nebo vrátí None - podle mě nejlepší řešení

To zní zajímavě, ale moc mně to nezapadá do takového toho objektového
pohledu na svět. Nutno přiznat, že je to asi celkem jedno, z venku
modulu to vypadá stejně jako přímo ten konstruktor objektu.

  - vytvořit objekt, který při porovnání s False vrátí True (lze
 implementovat přetížením/vytvořením metody __nonzero__)

Tak o __nonzero__ jsem nevěděl. zajímavé.


 BTW. počítáš i s IPv6, že jo? :)

Ne :-) není správně podporován na druhé straně.

D.



 Petr Messner


 2010/3/18 David Rohleder da...@ics.muni.cz:
  Ahoj,
 
  je možné, aby nevznikl objekt, který zrovna vytvářím? Příklad - mám
  třídu typu IP adresa, v konstruktoru předávám řetězec IPadresy. Chtěl
  bych, aby v případě, že IP adresa není validní, objekt vůbec nevznikl.
  Tj. aby konstruktor vrátil None:
 
  ipaddr = IP(192.1023.neco.1)
  ipaddr
  None
 
  chtěl jsem pak třeba udělat:
 
  if not ipaddr:
 print zadavas blby vstup
 
 
 
  chtěl jsem to vyřešit asi takto:
 
  class IP(object):
 def __init__(self, IPadresa):
 .
 if chyba: return None
 
 
 
  Jenomže konstruktor vrací vždycky None, tj. touto cestou to nejde.
 
  Zatím jediné, co mne napadlo, je vyřešit to pomocí výjimky, tj.např
 
  try:
 ipaddr = IP(192.168.34536.45)
  except ValueError:
 ipaddr = None
 
  Ale myslím, že kdyby objekt vůbec nevznikl, tak by to bylo lepší. Jde
  to, nebo to nejde?
 
  D.
 
 
  --
  David Rohleder da...@ics.muni.cz
 
  ___
  Python mailing list
  Python@py.cz
  http://www.py.cz/mailman/listinfo/python
 
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu azurIt
  To zalezi na pouziti a kontextu, nebudu ti cpat neco co je pro tve
 pouziti zbytecne. Ale v Pythonu se obvykle povazuje za normalni, ze
 pokud nejaka funkce dostane chybna vstupni data, tak hodi vyjimku, aby
 ten kdo ji volal ze udelal neco spatne. Pokud jsou chybna vstupni data
 ocekavana, tak je to zvlastni pripad. Ale podle toho co popisujes, by
 se mi tam pocitove rozhodne hodila vyjimka.


S tymto taktiez nesuhlasim :) Pri normalnom a korektnom behu aplikacie by 
vynimky takmer vobec nemali nastavat. Mam skor pocit, ze celu problematiku 
vynimiek chapes trochu nespravne. Priklad s tym tvojim objektom a kontrolou IP:

Ty ako programator by si mal zabezpecit, aby do objektu vosla spravna IP 
adresa. Objekt bude pouzivat pravdepodobne nejaka aplikacia nad nim, napriklad 
nejake GUI. Kontrolu vstupnych udajov a chybove spravy pre pouzivatelov by si 
mal umiestnit prave tam a do objektu zaslat uz korektne data. Vynimky su urcene 
pre programatorov aby vedeli, kde nastal problem a co treba osetrit/opravit. 
Nevravim, ze vyvolavanie vynimiek je zle, niekedy je velmi pohodlne a spravne 
ich pouzit napriklad pri kontrole vstupu - v tvojom pripade nemusis pridavat 
kontrolu IPcky do GUI (tzn. nemusis kod zdvojovat), staci pridat kontrolu, 
ktora odchyti vynimku objektu. Vynimky nie su ziadne 'goto', je to skor taka 
komunikacia medzi roznymi vrstvami kodu.





Já mám ovšem z toho používání výjimek někdy pocit, že nahradilo
neexistující goto. Prostě chci být najednou někde jinde, tak si vyvolám
výjimku a na nějakém správném místě si ji zpracuji. Ale to je věc názoru
a čistoty návrhu, kde se to hodí a kde ne.

D.

--
David Rohleder da...@ics.muni.cz

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu David Rohleder
azurIt píše v Čt 18. 03. 2010 v 20:35 +0100:
 musím přiznat, že řešení pomocí výjimek mně přijde jako s kanonem na
 vrabce, ikdyž to má svoji logiku. Pokud vnímám výjimku jako nějakou
 zásadně chybovou situaci, tak to do této věci nesedí, protože s chybným
 vstupem se má počítat a kód by ho měl ošetřovat.
 
 
 S tymto absolutne nesuhlasim. Ak hovoris o nejakom peknom osetreni chybneho 
 vstupu (typu vypisanie chybovej spravy), tak toto _absolutne_ nie je ulohou 
 funkcie ci objektu, ale konecnej aplikacie, ktora bude danu funkciu/objekt 
 pouzivat. Osetrenie vstupu je samozrejme nutnost ale nie tymto sposobom - 
 proste staci urobit aby funkcia 'zhucala' a nesnazila sa pokracovat (a 
 pripadne nieco pokazit). Vynimka je na toto priamo stvorena.
 


Takže ti spadne celá aplikace. OK, s tím se dá počítat, pokud je to
jednouživatelská aplikace. Ale co když jde o nějakou třeba webovou
službu?


 
 
 
 Možná jsem prostě jenom příliš staromódní, začínal jsem programovat v
 jazycích, kde výjimky nebyly a python je jazyk, kde se výjimky dají
 používat téměř jako lék na cokoliv.
 
   - nevolat konstruktor (tedy nevytvářet objekt), ale volat funkci,
  která sama vytvoří objekt, nebo vrátí None - podle mě nejlepší řešení
 
 To zní zajímavě, ale moc mně to nezapadá do takového toho objektového
 pohledu na svět. Nutno přiznat, že je to asi celkem jedno, z venku
 modulu to vypadá stejně jako přímo ten konstruktor objektu.
 
   - vytvořit objekt, který při porovnání s False vrátí True (lze
  implementovat přetížením/vytvořením metody __nonzero__)
 
 Tak o __nonzero__ jsem nevěděl. zajímavé.
 
 
  BTW. počítáš i s IPv6, že jo? :)
 
 Ne :-) není správně podporován na druhé straně.
 
 D.
 
 
 
  Petr Messner
 
 
  2010/3/18 David Rohleder da...@ics.muni.cz:
   Ahoj,
  
   je možné, aby nevznikl objekt, který zrovna vytvářím? Příklad - mám
   třídu typu IP adresa, v konstruktoru předávám řetězec IPadresy. Chtěl
   bych, aby v případě, že IP adresa není validní, objekt vůbec nevznikl.
   Tj. aby konstruktor vrátil None:
  
   ipaddr = IP(192.1023.neco.1)
   ipaddr
   None
  
   chtěl jsem pak třeba udělat:
  
   if not ipaddr:
  print zadavas blby vstup
  
  
  
   chtěl jsem to vyřešit asi takto:
  
   class IP(object):
  def __init__(self, IPadresa):
  .
  if chyba: return None
  
  
  
   Jenomže konstruktor vrací vždycky None, tj. touto cestou to nejde.
  
   Zatím jediné, co mne napadlo, je vyřešit to pomocí výjimky, tj.např
  
   try:
  ipaddr = IP(192.168.34536.45)
   except ValueError:
  ipaddr = None
  
   Ale myslím, že kdyby objekt vůbec nevznikl, tak by to bylo lepší. Jde
   to, nebo to nejde?
  
   D.
  
  
   --
   David Rohleder da...@ics.muni.cz
  
   ___
   Python mailing list
   Python@py.cz
   http://www.py.cz/mailman/listinfo/python
  
  ___
  Python mailing list
  Python@py.cz
  http://www.py.cz/mailman/listinfo/python
 
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] nevznik objektu

2010-03-18 Tema obsahu Petr Messner

On 18.3.2010, at 23:11, David Rohleder wrote:

 azurIt píše v Čt 18. 03. 2010 v 20:35 +0100:
 musím přiznat, že řešení pomocí výjimek mně přijde jako s kanonem na
 vrabce, ikdyž to má svoji logiku. Pokud vnímám výjimku jako nějakou
 zásadně chybovou situaci, tak to do této věci nesedí, protože s chybným
 vstupem se má počítat a kód by ho měl ošetřovat.
 
 
 S tymto absolutne nesuhlasim. Ak hovoris o nejakom peknom osetreni chybneho 
 vstupu (typu vypisanie chybovej spravy), tak toto _absolutne_ nie je ulohou 
 funkcie ci objektu, ale konecnej aplikacie, ktora bude danu funkciu/objekt 
 pouzivat. Osetrenie vstupu je samozrejme nutnost ale nie tymto sposobom - 
 proste staci urobit aby funkcia 'zhucala' a nesnazila sa pokracovat (a 
 pripadne nieco pokazit). Vynimka je na toto priamo stvorena.
 
 
 
 Takže ti spadne celá aplikace. OK, s tím se dá počítat, pokud je to
 jednouživatelská aplikace. Ale co když jde o nějakou třeba webovou
 službu?
 


S výjimkami se musí počítat. U webových aplikací/služeb se typicky odchytávají 
na úrovni nějakého volání handleru HTTP odpovědi a když je výjimka zachycena, 
vrátí se HTTP status 500 Server Error, zrollbackují se transakce v databázi 
atd. a jede se dál.

A i kdyby webová aplikace spadla (třeba na SIGSEGV) - v ideálním případě (a 
většina konfigurací takto funguje) se spustí znovu.
 
Petr Messner

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python