-
Data: 2010-09-16 22:40:20
Temat: Re: Zagwozdka - wyjątek w konstruktorze?
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 16.09.2010 09:19, klops pisze:
>
> Wracając do tematu, zastanów się nad tym (może bozia pozwoli dostrzec
> problem o którym wzmiankowałem...):
[...]
> Foo()
> {
> b = new Bar();
> cout <<"Foo"<<endl;
> throw 1;
[...]
> Dla podpowiedzi: b wyciekło...
To nie ma nic (poza lokalizacją) wspólnego z konstruktorem - błąd leży w
braku zwalniania zasobów przy opuszczaniu zakresu. Tu masz to samo a kod
jest rodem z C.
{
char *buf=malloc(100);
//...
if(cond)
return -1;
//...
free(buf);
return 0;
}
Standardowym podejściem w sytuacji gdy używamy "gołych" wskaźników i
wyjątków w jednym miejscu (nie tylko w konstruktorze) jest taki zapis:
Foo():b(0)
{
try
{
cout <<"Foo"<<endl;
//...
b=new Bar();
//...
throw 1;
//...
}
catch(...)
{
if(b)
delete b;
throw;
}
}
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 16.09.10 15:46 klops
- 17.09.10 06:49 Bronek Kozicki
- 17.09.10 11:00 Michoo
- 17.09.10 11:47 Wojciech \"Spook\" Sura
- 16.09.10 22:00 klops
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-14 Dobra zmiana
- 2024-11-14 Czy prezydent może ułaskawić od zadośćuczynienia? [A. Lepper odszkodowania]
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=