-
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
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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
Najnowsze wątki
- 2025-01-30 Łódź => Programista NodeJS <=
- 2025-01-30 Jest Trump prezydent jest Meta/FBook/Instagram ugoda za 25 mln. USD
- 2025-01-30 Gdańsk => Solution Architect (Java background) <=
- 2025-01-30 Zielona Góra => Senior Field Sales (system ERP) <=
- 2025-01-30 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-01-30 DeepSeek nie lubi gadać o polityce
- 2025-01-30 Błonie => Administrator systemów <=
- 2025-01-30 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-30 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-30 Faktura z czech.
- 2025-01-29 "Zorganizowana Grupa Przestępcza" poczeka na decyzję o ekstradycji z UK na wolności [RARS]
- 2025-01-29 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-29 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-29 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-29 Poznań => Specjalista ds. Employer Brandingu <=