[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