eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAda Tutorial - w Instytucie Lotnictwa › Re: Ada Tutorial - w Instytucie Lotnictwa
  • Data: 2019-05-08 15:32:30
    Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
    Od: Wojciech Muła <w...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: