🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #215554

Re: Ada Tutorial - w Instytucie Lotnictwa

#215554
From: Wojciech Muła
Date: Wed, 08 May 2019 13:32
31 lines
2781 bytes
On Tuesday, May 7, 2019 at 10:52:14 PM UTC+2, heby wrote:
> On 07/05/2019 21:15, Wojciech Muła wrote:
> > Zadanie dla chętnych: w ilu miejscach może tu polecieć wyjątek?
> > Type1 i Type2 to jakieś klasy dostarczone przez użytkownika,
> > nic o nich nie wiemy.
> > 
> > Type1 fun(Type2 a, Type2 b)
> > {
> >     if (a.get_value() > b.get_value()) {
> >        return a.get_foo();
> >     }
> >     
> >     return a.get_bar() + b.get_foo();
> > }
> 
> Skoro nic o nich nie wiemy to obsługa tego wyjątku ma znaleźć się w 
> kodzie który coś o Type1 i Type2 wie czyli pewnie poziom niżej. Inaczej 
> kończysz na try {} catch(...) to jest jeszcze gorsze.
> 
> Wyjątki nie łapie się po każdym dodawaniu. Łapie się tam gdzie wiadomo 
> co z nimi zrobić.

Ale łapanie wyjątku to jest połowiczne rozwiązanie problemu. W szczególności,
jeśli wyjątek może pójść w dowolnym miejscu kodu (w tym przykładzie jest co
najmniej 13 miejsc, skąd może coś polecieć), to jaki będzie stan obiektu na
rzecz którego wołano metodę? Czy np. taki obiekt można bezpiecznie używać
dalej (stan wewnętrzny pozostał spójny)? Albo chociaż wywołać destruktor?
A co jeśli wyjątek leci z miejsca, o którym wierzyłeś, że nigdy nie poleci
i jednak dostajesz terminate?

w.
Technical Details
Message-ID: <0eb77d44-3b22-41cb-8339-2346fe0b6c4d@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!t9no5866737qtn.0!news-out.google.com!b26ni279qtp.1!nntp.google.com!t9no5866730qtn.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <c1760262-b4a3-44fe-a99e-2fa16be86820@googlegroups.com> <btKtE.25850$wd2.16727@fx24.fr7> <9537dd39-0164-41a6-803b-393b77b4a701@googlegroups.com> <qasr5t$7i2$1@dont-email.me>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:8d07:: with SMTP id r7mr17594194qvb.206.1557322351014;        Wed, 08 May 2019 06:32:31 -0700 (PDT)
X-Received: by 2002:ac8:33bc:: with SMTP id c57mr27742186qtb.252.1557322350796; Wed, 08 May 2019 06:32:30 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!t9no5866737qtn.0!news-out.google.com!b26ni279qtp.1!nntp.google.com!t9no5866730qtn.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 8 May 2019 06:32:30 -0700 (PDT)
In-Reply-To: <qasr5t$7i2$1@dont-email.me>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.11.8.249; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn
NNTP-Posting-Host: 78.11.8.249
References: <c1760262-b4a3-44fe-a99e-2fa16be86820@googlegroups.com> <btKtE.25850$wd2.16727@fx24.fr7> <9537dd39-0164-41a6-803b-393b77b4a701@googlegroups.com> <qasr5t$7i2$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0eb77d44-3b22-41cb-8339-2346fe0b6c4d@googlegroups.com>
Subject: Re: Ada Tutorial - w Instytucie Lotnictwa
From: Wojciech Muła <wojtek.mula@gmail.com>
Injection-Date: Wed, 08 May 2019 13:32:30 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit