Zadanie 5
+2
SiwyEd
Gricha
6 posters
Page 1 of 1
Zadanie 5
Czy set przy insercie może rzucić exception?
http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/index.jsp?topic=/com.ibm.xlcpp9.aix.doc/standlib/stl_map.htm
Jak tu pogrzebałem to wynikało, że tak, ale pewny i tak nie jestem
http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/index.jsp?topic=/com.ibm.xlcpp9.aix.doc/standlib/stl_map.htm
Jak tu pogrzebałem to wynikało, że tak, ale pewny i tak nie jestem
Gricha- Liczba postów : 425
Join date : 2010-10-12
Age : 32
Skąd : Myszków
Re: Zadanie 5
Tak, może mu:
a) zbraknąć pamięci
b) operator< elmentów w secie może rzucić wyjątkiem
c) i pewnie miliard innych
a) zbraknąć pamięci
b) operator< elmentów w secie może rzucić wyjątkiem
c) i pewnie miliard innych
SiwyEd- Liczba postów : 5
Join date : 2011-04-16
Re: Zadanie 5
Czy załozyliście, że Rev.get_id() nie rzuca wyjątków?
kroolik- Liczba postów : 55
Join date : 2010-12-06
Re: Zadanie 5
Ma ktoś jakieś fajne testy? Nasz ćwiczeniowiec mówił, że testy mają być złośliwe, więc warto dobrze potestować programy
magdov- Liczba postów : 37
Join date : 2010-10-12
Age : 33
Re: Zadanie 5
- Code:
typename Node::SetChildren::iterator itChildren = children.begin();
while (itChildren != children.end()) {
(*itChildren)->parents.erase(WeakPointer(sPtr));
itChildren++;
}
Czy ktoś mógłby mi powiedzieć, czy istnieje jakaś możliwość wystąpienia wyjątku w tym fragmencie kodu. Sprawdziłem, że erase() z STLa jest nothrow, a konstruktor template
Heniek- Liczba postów : 329
Join date : 2010-10-12
Re: Zadanie 5
Wydaje mi się, że nie należy wpadać w przesadną panikę.
Dobrze napisany kod nie wyrzuci wyjątku "z naturalnych przyczyn" jeśli będziemy sprawdzać czy rewizje, do których się odwołujemy po prostu istnieją.
Sprawdzanie czegoś takiego:
Natomiast Rev.get_id() to jest sprawa podejrzana, ja bym o tym nic nie zakładał, a można łatwo się wybronić przed wyjątkiem w tym miejscu.
Dobrze napisany kod nie wyrzuci wyjątku "z naturalnych przyczyn" jeśli będziemy sprawdzać czy rewizje, do których się odwołujemy po prostu istnieją.
Sprawdzanie czegoś takiego:
to już by było ostre przegięcie. Jedyna dyskusyjna sprawa to b), ale jeśli porównywanie elementów rzuca wyjątek, to znaczy że któryś z obiektów jest w "inconsistent state", więc wyjątek powinien być wyrzucony wcześniej, co oznacza, że kod, który używa naszej biblioteki, jest źle napisany.a) zbraknąć pamięci
b) operator< elmentów w secie może rzucić wyjątkiem
c) i pewnie miliard innych
Natomiast Rev.get_id() to jest sprawa podejrzana, ja bym o tym nic nie zakładał, a można łatwo się wybronić przed wyjątkiem w tym miejscu.
saephir- Liczba postów : 84
Join date : 2010-10-20
Re: Zadanie 5
Ten kod przeszukuje wskaźniki, które mają operator porównania nothrow, wiec moim zdaniem nie może być wyjątku
Heniek- Liczba postów : 329
Join date : 2010-10-12
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|