Smazat příspěvek

 Chystáte se smazat zprávu (se všemi případnými odpověďmi) z kategorie Hlavní diskuze:


13.10.2016 (22:01:51)
mirekP:
C++ 11 Viete mi povedat aky je GoodPraktice na riesenie vynimiek. Ak chcem napisat fuknciu foo() ktora moze vyhodit bad_alloc vynimku pri alokovani, mam tu vynimku chytit vo funkcii foo() a z nej robit výpis std::cerr << "bad_alloc" << std::endl;?

Alebo mam dat do dokumentacie/ popisu tej funkcie ze moze vyhodit vynimku a nech si programator ktorý ju pouzije to sam chytá/ riesi?

BadAlloc moze nastat ak vektor ktory alokujem vo foo() by bol prilis velky.

Dakujem
17.10.2016 (16:03:24)
Goheeca (web) :
Vyjimky tak jak jsou bezne resene v C++, javach, pythonech apod. nam serviruji dilema, kde vyjimku osetrit. Bliz u vyjimky mame vic kontextu, jak provest zotaveni, naopak dal/vyse zase vime, jaky zpusob zotaveni chceme pouzit.

Vsuvka: Lepsi pristup jsou tzv. restarty a conditiony: https://en.wikibooks.org/wiki/Common_Lisp/Advanced_topi...
The condition system can be broken into three parts, signalling or raising conditions, handling conditions, and providing recovery from conditions. Almost every modern programming language offers the first two protocols, but very few offer the last (or distinguish between the last two). This last protocol, providing restarts, or ways for the program to recover, is in some ways the most important aspect of Common Lisp condition handling.

Konkretne v tvem pripade std::bad_alloc se vetsinou neda chytrejs osetrit nez si postezovat. Pokud je to mala funkce urcite bych ji vyhazoval vejs, ale zachytil bych v nejakym modulu, aby to neotravovalo na ty nejvyssi urovni, jelikoz s tim stejne nebudes delat nic jinyho.
17.10.2016 (16:04:35)
Goheeca (web) :
BadAlloc moze nastat ak vektor ktory alokujem vo foo() by bol prilis velky.

To foo() vypada na malou funkci, takze bych to vyhodil dal.


Přezdívka:*
Heslo:*

███   █ █   ███   
█     █ █   █ █   
███   ███   █ █   
█ █     █   █ █   
███     █   ███   
Opiš:*

Zde můžete smazat vlastní vlákno nebo kteroukoliv odpověď v něm. Můžete smazat vlastní odpověď v cizím vlákně, pokud na ni ještě nikdo jiný nereagoval. Mazat cizí vlákna a odpovědi v nich mohou pouze admini. Smazání příspěvku je nevratná operace! Smazáním vzkazu se smažou i odpovědi na něj.
Seznam uživatelů
Zpět na knihu