Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rzucanie wyjątków

Ostatnio zmodyfikowano 2015-03-25 21:27
Autor Wiadomość
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.
 
P-129131
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.
P-129163
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
P-129168
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..
P-129174
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.
P-129175
1 « 2 »
Poprzednia strona Strona 2 z 2