Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 1. diel - Výnimky

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:16.6.2012 18:19

Jo, chápu :) Ale nesváděl bych to na MS, mám za to, že Java to má stejně.

Odpovedať
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:16.6.2012 19:43

V tom případě to má Java úplně stejně špatně. Logická a fyzická likvidace objektů musí být odděleně.

Objekty v PHP jsou často kritizovány, ale tohle v něm funguje skvěle. I v Pythonu je možné si vytvořit vlastní destruktor. Tím vlastně odpadá potřeba bloků finally, protože jsou tím zbytečné. Stačí jeden destruktor pro celý objekt.

Je na tom vidět, kam až vede honba za výkonem aplikace.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
relycanx
Člen
Avatar
relycanx:5.4.2013 11:19

Chtěl bych se zeptat konkrétně na tento příklad:

try
{
        Console.WriteLine(Matematika.Podil(a, b));
}
catch
{
        Console.WriteLine("Při dělení nastala chyba.");
}

Asi jen špatně koukám, ale nevidím souvislost s tou nulovou podmínkou. Jak to v tomto případě může vyhodit chybu, když tam není podmínka? Jako jinak využití příkazů try a catch myslím chápu. Když se např. soubor v počítači nenajde, tak to vyplivne catch a nemusí tam být vyloženě zadaná podmínka, ale tady prosím o vysvětlení, jestli můžu :)

Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovedá na relycanx
Petr Nymsa:5.4.2013 11:33

Nelez dělit nulou, proto vyskočí vyjímka :)

Odpovedať
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
relycanx
Člen
Avatar
Odpovedá na Petr Nymsa
relycanx:5.4.2013 11:49

Jo takhle, takže to bere Virtual Studio jako samozřejmost, chápu, dík :) Já právě nevěděl, jestli má tuto podmínku v paměti.

Avatar
Kit
Tvůrce
Avatar
Odpovedá na relycanx
Kit:5.4.2013 13:30

Obvykle se nebalí každý riskantní příkaz do jednoho try..catch, ale téměř vždy nějaký blok příkazů. Často se ani neošetřuje uvnitř metody, ve které může k výjimce dojít.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
relycanx
Člen
Avatar
Odpovedá na Kit
relycanx:5.4.2013 13:44

No pochopil jsem to asi tak, že try je jakási "databáze" podmínek a když z nich jedna nesouhlasí, tak to vyhodí catch a proto je celý ten blok try-catch pomalejší, protože se musí nejdříve vyhodnotit celý ten seznam, je to tak, nebo jsem vedle? :D

Avatar
Kit
Tvůrce
Avatar
Odpovedá na relycanx
Kit:5.4.2013 13:50

Jsi vedle. try..catch je rychlejší.

Výjimka není databáze, ale objekt.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
relycanx
Člen
Avatar
Odpovedá na Kit
relycanx:5.4.2013 14:00

ajaj :D :) a dají se tam nějakým způsobem vkládat další, individuální podmínky, aby se dala vyjímka používat celkově jako zábrana proti chybám namísto if?

Avatar
Kit
Tvůrce
Avatar
Odpovedá na relycanx
Kit:5.4.2013 14:05

Jistě. Na to je klíčové slovo throw. Jenom si musíš dát pozor, abys pomocí výjimek nedělal flow-control. Program by se ti zpomalil a je to špatně i z hlediska návrhu. Výjimky musí zůstat výjimkami, musí k nim docházet jen při výjimečných situacích a při chybách.

Výjimkou je např. i chybně vyplněné formulářové pole uživatelem nebo špatný parametr programu, ale určitě ne podmínka pro ukončení cyklu.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 27.