🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14934

Re: Wyjątki w konstruktorze

#14934
From: Marcin Stefaniak
Date: Wed, 23 Aug 2006 18:29
30 lines
2083 bytes
Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid> napisał(a): 

> > Zwłaszcza w C++ rzucanie wyjątków z konstruktora to nie przelewki - jak nie
> > czujesz się na siłach to lepiej tego nie próbuj
> 
> A co w tym trudnego? Wyjątek jak każdy inny. No, z drobnym wyjątkiem:
> tworzenie dwóch w jednym wyrażeniu wymaga stosowania std::auto_ptr.

No tak, racja - w ogóle wyjątki w C++ to nie przelewki. Konstruktory nie są tu
nadzwyczajne pod tym względem, poza tym że muszą po sobie od razu posprzątać,
bo nikt inny za nich tego nie zrobi. 

Co miałem na myśli: że lepiej zabronić używania wyjątków, zwłaszcza dopóki się
nie zrozumie (albo pracuje z ludźmi, którzy nie są w stanie pojąć, to czasem
ciężko zmienić) 
- dlaczego Sektor napisał to co napisał
- dlaczego poniższy kod nie jest wyjątkowo-bezpieczny:

int priority();
void processWidget(auto_ptr<Widget> pw, int priority);
..
  processWidget(auto_ptr<Widget>(new Widget), priority());
..

rozwiązanie tej zagadki (Item 17 z Effective C++ 3rd Ed) w następnym odcinku...

Marcin Stefaniak

-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Technical Details
Message-ID: <eci6qt$h30$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl> <ecesvp$k3h$3@kujawiak.man.lodz.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Marcin Stefaniak" <matmis.WYTNIJ@gazeta.pl>
Newsgroups: pl.comp.objects
Subject: Re: Wyjątki w konstruktorze
Date: Wed, 23 Aug 2006 18:29:49 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 30
Message-ID: <eci6qt$h30$1@inews.gazeta.pl>
References: <1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl> <ecesvp$k3h$3@kujawiak.man.lodz.pl>
NNTP-Posting-Host: 65.57.245.11
X-Trace: inews.gazeta.pl 1156357789 17504 172.20.26.243 (23 Aug 2006 18:29:49 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 23 Aug 2006 18:29:49 +0000 (UTC)
X-User: matmis
X-Forwarded-For: 172.20.6.61
X-Remote-IP: 65.57.245.11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit