Article View: pl.comp.objects
Article #14933Re: Wyjątki w konstruktorze
From: Sektor van Skijlen
Date: Tue, 22 Aug 2006 12:23
Date: Tue, 22 Aug 2006 12:23
34 lines
2454 bytes
2454 bytes
Dnia Tue, 22 Aug 2006 05:28:36 +0000 (UTC), Marcin Stefaniak skrobie: > > Witam, > > > > W obiekcie mam sytuacje, ze z pewnych przyczyn nie jest mozliwe > > utworzenie jego instancji (sprawdza to jego konstruktor). > > > > Czy konstruktor powinien (czy moze) wtedy zwracac wyjatek, czy > > raczej nie jest to polecana praktyka? > Można, ale nie polecam. Zamiast tego można zrobić prosty prywatny konstruktor > i statyczną metodę / funkcję zaprzyjaźnioną zwracającą nowy obiekt albo np. > null jeśli jego utworzenie jest niemożliwe. To wszystko zależy od tego, czy chcemy błędy konstrukcji zgłaszać przez wyjątki, czy też wolimy przez wartość zwracaną. W tym wypadku zresztą (mówię o C++) zwracanie błędu przez NULL jest możliwe tylko w przypadku dynamicznego tworzenia i cały ten framework ma uniemożliwić tworzenie w inny sposób. > 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. :) -- // _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl> \\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com> // \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx "I am allergic to Java because programming in Java reminds me casting spells"
Technical Details
Message-ID:
<ecesvp$k3h$3@kujawiak.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mailReferences:
<1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid>
Newsgroups: pl.comp.objects
Subject: Re: Wyjątki w konstruktorze
Date: Tue, 22 Aug 2006 12:23:21 +0000 (UTC)
Organization: LODMAN - Metropolitan Area Network in LODZ, Poland
Lines: 34
Sender: Michal Malecki <sektor@zly.kis.p.lodz.pl>
Message-ID: <ecesvp$k3h$3@kujawiak.man.lodz.pl>
References: <1156145142.606030.39100@m73g2000cwd.googlegroups.com> <ece4m4$88j$1@inews.gazeta.pl>
NNTP-Posting-Host: zly.kis.p.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 1156249401 20593 212.191.89.2 (22 Aug 2006 12:23:21 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Tue, 22 Aug 2006 12:23:21 +0000 (UTC)
User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (SunOS/5.9 (sun4u))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit