NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Programovací jazyky pod pokličkou – výjimky

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
vodacek
Tvůrce
Avatar
vodacek:3.12.2013 11:48

Plnej počet za goto

 
Odpovědět
3.12.2013 11:48
Avatar
Odpovídá na vodacek
Luboš Běhounek Satik:3.12.2013 12:37

Taky 5* - musíme nějak vyrovnat hodnocení (až přijde Kit a dá jednu hvězdičku za GOTO :) )

Odpovědět
3.12.2013 12:37
https://www.facebook.com/peasantsandcastles/
Avatar
vodacek
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
vodacek:3.12.2013 12:44

vidím to úplně stejně

 
Odpovědět
3.12.2013 12:44
Avatar
coells
Tvůrce
Avatar
Odpovídá na vodacek
coells:3.12.2013 12:56
:-D

Ve "vyšších" programovacích jazycích goto zakázali, jenže pak zjistili, že je to docela potřebná věc. Takže ho vrátili zpět, a aby to nevypadalo hloupě, dali mu nový název:

  • break = goto
  • continue = goto
  • throw = long goto

Jenže ani to nestačilo a existují případy, kdy je goto preferovanou variantou, takže v Javě navíc zavedli labeled break a labeled continue. Vtipné na tom je, že kvůli jednomu procentu případů tak museli zavést podivnou syntaxi labeled cyklů do jazyka.

Každopádně díky za hodnocení.

 
Odpovědět
3.12.2013 12:56
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:3.12.2013 12:59

Zatím jsem to jenom přelítl, vyvalil jsem oči a nechal si to na večer, až na to bude klid. Zatím mám pocit, že by ten článek měli číst programátoři od 18 let ... praxe.

Odpovědět
3.12.2013 12:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na coells
Kit:3.12.2013 13:02

Téměř všechna goto a break se dají nahradit returnem. Throw je jen jiný (chybový) return.

Odpovědět
3.12.2013 13:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
coells
Tvůrce
Avatar
Odpovídá na Kit
coells:3.12.2013 15:16

Téměř všechny řídící struktury se dají nahradit returnem, ale nebylo by to správné a navíc se tu o tom nebavíme. Throw je mnohem víc než jen return.

Editováno 3.12.2013 15:17
 
Odpovědět
3.12.2013 15:16
Avatar
Kit
Tvůrce
Avatar
Odpovídá na coells
Kit:3.12.2013 15:29

Ten poslední příklad bych si představoval spíš takto:

:
} CATCH EX_INVALID_STREAM {
    printf("Invalid input stream\n");
    break;
} CATCH EX_INVALID_NUMBER
    printf("Invalid number on input\n");
    break;
} CATCH EX_NAN
    printf("Result is not a number\n");
    break;
}

Ten výstupní string by měl vznikat už v místě chyby, protože jinak je to ošetřování poměrně komplikované.

Odpovědět
3.12.2013 15:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
coells
Tvůrce
Avatar
Odpovídá na Kit
coells:3.12.2013 21:43

Ty možná ano, ale já jsem to schválně takhle nenapsal ze dvou důvodů:

  1. nefungovalo by to
  2. nefungovalo by to

Zdá se to jako jeden důvod, ale zdál se mi tak důležitý, že jsem ho uvedl dvakrát.

Bonus pro toho, kdo přijde na důvod, proč je v tomhle případě větvení na úrovni CATCH špatně ;-)

 
Odpovědět
3.12.2013 21:43
Avatar
vitamin
Člen
Avatar
vitamin:4.12.2013 9:13

Veľmi zaujímavý článok, ale v praxi je to nepoužiteľné. setjump/longjmp sú pomalé funkcie ktoré spomalujú normálny beh programu preto sa na spracovávanie výnimiek nepoužívajú(v niektorých prípadoch ich treba napr pri odchytávanie výnimiek z win knižníc ktoré používajú SEH). Tie tvoje "výnimky" nemôžu opustiť funkciu kde boli "vyhodené" a množstvo ďalších obmedzení.

 
Odpovědět
4.12.2013 9:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 11.