azurIt píše v Čt 18. 03. 2010 v 23:02 +0100: > >> 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. >
Nemyslím si, že bych měl zajišťovat, aby do objektu vstoupil už správný typ a hodnota. Naopak, všechno by si mohl ošetřit až objekt uvnitř. V případě, že by vstupní data nevyhovovala, tak by se mohla vrátit místo objektu hodnota None a bylo by to. Nemusím nikde zdvojovat kontroly správnosti, atd. S tím goto jsem to myslel spíš tak, že nepoužití výjimek vede na příliš hluboké zanořování, protože musíš ošetřovat hromadu chybových stavů, tj. spousta if. D. _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python