[python] nevznik objektu

Petr Messner petr.messner na gmail.com
Čtvrtek Březen 18 23:28:45 CET 2010


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



Další informace o konferenci Python