Diskuze: Kódování textu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 9 zpráv z 59.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Když použiješ výjimku, nemusíš testovat zkaženou URL.
Podle mne jsou výjimky mnohem lepší, než vracet boolean. Nemusíš prznit návratovou hodnotu funkce, používat globální proměnné a většinou ani předávat parametry odkazem. Errorflow teče jinudy.
Však ten rozměr
tam dávat vůbec nemusíš. Proč taky? Není
to pole, ale seznam.
Námitky? Diskutujeme přece o tom, jak nejlépe naprogramovat práci se seznamem.
Samozřejmě - však se to snažím vychytat - nebylo to myšleno jinak, než napsáno...
No zde by to vypadalo úplně stejně - jen bych vyvolal vyjímku - a musel ji chytat v try bloku - to mi nepřijde pěkné. Takto mám přehlednou podmínku. Jako proč by mělo být výhodnější vyvolávat vyjímku, oproti testování v podmínce?
Protože výjimky jsou přehlednější.
Ale hlavně: Zavoláš funkci a její výsledek někam uložíš. Pokud dojde k výjimce, uložení se neprovede. V hlavním bloku nemusíš nic testovat, pouze provedeš přiřazení. A takových přiřazení můžeš udělat klidně 10 za sebou bez jakéhokoli testování. Pokud v některém z nich dojde k výjimce, blok je opuštěn a pokračuje větví catch.
Výsledkem funkce není status, zda se povedla, ale hodnota, kterou někde použiješ.
Aha - špatně si mne pochopil - netestuji URL zvlášť - to testu zahrnuji v případě návratu true přidání správné URL do seznamu navšťívených URL... (Mimo jiné do seznamu doplňující právě psanou URL.)
Ano to jsem pochopil, ale nechápu, proč je lepší try blok:
if (bool n = SetUrl()) // uložení výsledku
else
try
{
}
catch
{
}
Protože ses ještě nenaučil výjimky používat. A také ses ještě nenaučil používat funkce. Uvedený příklad try..catch nemá smysl opravovat, protože je celý chybně. Používání globálních proměnných je nešvar, je to tzv. side-effect, který by funkce neměla mít.
Sám píšeš "přidání správné URL do seznamu navšťívených URL". Použil jsi slovíčko "seznam". Proč s tím tedy nezacházíš jako se seznamem, ale jako kdyby to bylo pole? Položky v seznamu index nemají, používá se iterátor.
Zobrazeno 9 zpráv z 59.