[python] nevznik objektu

azurIt azurit na pobox.sk
Čtvrtek Březen 18 23:02:13 CET 2010


>>  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 <davro na ics.muni.cz>
>
>_______________________________________________
>Python mailing list
>Python na py.cz
>http://www.py.cz/mailman/listinfo/python


Další informace o konferenci Python