-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin1!goblin.stu.neva.ru!news.astraweb.com!border6.a.newsrouter.astr
aweb.com!not-for-mail
Date: Sat, 16 Jun 2012 22:08:27 +0100
From: Bronek Kozicki <b...@s...net>
Organization: (my opinions are just mine)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428
Thunderbird/12.0.1
MIME-Version: 1.0
Newsgroups: pl.comp.programming
Subject: Re: Try catch, prawidłowy sposób użycia
References: <jqfo4u$637$1@node2.news.atman.pl> <jqgjqf$2jr$1@inews.gazeta.pl>
<s...@j...net> <jqgl1l$b49$1@inews.gazeta.pl>
<a...@j...googlegroups.com>
<jqib3a$cec$1@inews.gazeta.pl>
In-Reply-To: <jqib3a$cec$1@inews.gazeta.pl>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 72
Message-ID: <4fdcf5c9$0$3778$c3e8da3$63ee2bc3@news.astraweb.com>
NNTP-Posting-Host: 40a036ce.news.astraweb.com
X-Trace: DXC=ZRQ>mh2<ebJU8fT?_VL23KL?0kYOcDh@J9WTKl=fkkgC]]COj<c<ZVI2jP89H\`LSG0[`d89
Qb@2JO3UOh[7o[jLedZV\DcgP8ILWnE8P5;kgJ
Xref: news-archive.icm.edu.pl pl.comp.programming:197952
[ ukryj nagłówki ]On 04/06/2012 13:52, AK wrote:
> Użytkownik "Maciej Sobczak" <s...@g...com> napisał:
>
>> Ten kod może być zarówno dobry jak i niedobry, zależnie od kontekstu.
>
> Ten kod (A) jest zawsze zly.
tylko przy założeniu że "rollback" jest w sekcji catch. A mógłby być w
destruktorze, np:
class Connection
{
friend class Transaction;
void begin();
void rollback();
void commit();
void execute(const Statement&);
// . . .
};
class Transaction
{
Connection& conn_;
bool active_;
public
Transaction(Connection& c) conn_(c), active_(false)
{}
~Transaction()
{
if (active_)
conn_.rollback();
}
void commit()
{
if (active_)
{
conn_.commit();
active_ = false;
}
}
void execute(const Statement& s)
{
if (!active_)
{
conn_.begin();
active_ = true;
}
conn_.execute(s);
}
};
try
{
Transaction t(c);
t.execute(s1);
t.execute(s2);
t.commit();
t.execute(s3);
t.commit();
}
catch (Error e)
{}
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 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
Najnowsze wątki
- 2024-12-18 Poseł oszukany "na policjanta"
- 2024-12-18 znów chory psychicznie
- 2024-12-18 Katowice => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-18 Poznań => Dyspozytor Międzynarodowy <=
- 2024-12-18 Katowice => System Architect (background deweloperski w Java) <=
- 2024-12-18 Gdańsk => System Architect (Java background) <=
- 2024-12-18 Warszawa => Helpdesk Specialist <=
- 2024-12-18 Katowice => Kierownik Działu Zarządzania Platformą Wirtualizacji i
- 2024-12-18 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-18 Żerniki => Employer Branding Specialist <=
- 2024-12-18 Gliwice => Specjalista ds. public relations <=
- 2024-12-18 Kablówka z modułem CAM
- 2024-12-18 Warszawa => Spedytor międzynarodowy <=
- 2024-12-18 Wróblewo => Analityk finansowy <=
- 2024-12-18 Gdańsk => Specjalista ds. Sprzedaży <=