Rzucanie wyjątków
Ostatnio zmodyfikowano 2015-03-25 21:27
maly |
» 2015-03-25 06:57:45 @dek12 Trzeba jeszcze pamiętać że klasa nie ma prawa wygenerować u siebie żadnego wyjątku. string ZwrociJakisStringZInfo() noexcept; lub string ZwrociJakisStringZInfo() throw(); i tak dla wszystkich metod i konstruktorów. |
|
pekfos |
» 2015-03-25 20:10:17 string ZwrociJakisStringZInfo() noexcept; lub string ZwrociJakisStringZInfo() throw(); i tak dla wszystkich metod i konstruktorów. |
Akurat tu te specyfikacje wyjątków nie mają większego znaczenia. |
|
Monika90 |
» 2015-03-25 20:37:27 Funkcja zwraca string więc musi go jakoś utworzyć i ewentualnie skopiować podczas zwracania, te operacje mogą rzucić wyjątkiem, a funkcja ma atrybut noexcept, wtedy zostanie wywołane std::terminate |
|
pekfos |
» 2015-03-25 21:24:49 Funkcja zwraca string więc musi go jakoś utworzyć i ewentualnie skopiować podczas zwracania, te operacje mogą rzucić wyjątkiem, a funkcja ma atrybut noexcept, wtedy zostanie wywołane std::terminate |
Fakt :) Jeśli wyjątek poleci przy tworzeniu stringa, to to będzie rzucony wyjątek, ale już nie przy kopiowaniu, bo to jest std::terminate() niezależnie od określenia specyfikacji wyjątków. @down: To moja słodka tajemnica.. ;) Eh, masz w kursie STC.. |
|
Brunon3 |
» 2015-03-25 21:27:06 @pekfos: Tak offtopowo (:P), jakiego znacznika używasz do takich wyrazów jak "std::terminate()"? :)
EDIT: Wcześniej jakoś tego nie zauważyłem... [tt][/tt]. Fajne. :)
-BD. |
|
1 « 2 » |