🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14508

Re: Wyrzucenie wyjątku, czy zwrócenie nul l?

#14508
From: Piotr Jachowicz
Date: Tue, 28 Mar 2006 07:07
56 lines
2727 bytes
2006-03-28 08:44:08
Przemek Pokrywka <adres@zastrzezony.com> wrote in message
<e09c3r$lg3$1@news.onet.pl>

> Witam,
> 
> 
> Mam system, zawierający m.in. klasy:
> 
> class Person
>  getAge : int
> 
> class PersonFinder
>  find(name : string) : Person
> 
> 
> Metoda find klasy PersonFinder jest wywoływana bardzo często w 
różnych 
> sytuacjach, z kodu pisanego przez różnych autorów. Zdarza się, że 
kod 
> korzystający z tej metody kolekcjonuje zwracane przez nią obiekty 
Person 
> na wypadek potrzeby ich przyszłego użycia.
> W tej chwili, gdy metoda nie odnajdzie osoby o zadanym nazwisku, 
zwraca 
> wartość null.
> 
> Jak Państwa zdaniem powinna wyglądać optymalna obsługa sytuacji 
> wyjątkowej przez tą metodę, gdyby pisać ten system na nowo?
> - Czy najlepiej zwracać by wartość null, jak w tej chwili?
> - Czy wyrzucać wyjątek?
> - Zakładając, że system pisany byłby w Javie, jakiego typu wyjątek -
 
> checked, czy unchecked?
> 
> Z pewnych względów wolałbym nie stosować tu wzorca Null Object 
(Woolf).
> 
> Zapraszam do podzielenia się swoimi uwagami
Ja osobiœcie projektuję w takiej sytuacji dwie metody:
findSole(name : string) : Person, i
find(name : string) : PersonList
Ta pierwsza jest wywoływana kiedy z kontekstu businessowego wynika że 
na pewno istnieje dokładnie jedna taka osoba (np. name jest unikalne 
i zostało zwrócone przez innš metodę). Jeżeli taka osoba nie może 
zostać odnaleziona lub jest ich więcej niż jedna - findSole() rzuca 
wyjštek bo œwiadczy to o jakimœ wewnętrznym błędzie w aplikacji.
Ta druga zwraca po prostu listę spełniajšcej zadane kryteria. Jeżeli 
takich osób nie ma to lista jest pusta.

> 
> 
> Przemysław Pokrywka

-- 
Piotr Jachowicz
Technical Details
Message-ID: <e0anb1$qks$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <e09c3r$lg3$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Piotr Jachowicz" <piotr.jachowicz@ericpol.pl>
Newsgroups: pl.comp.objects
Subject: Re: Wyrzucenie wyjątku, czy
 zwrócenie nul l?
Date: Tue, 28 Mar 2006 09:07:15 +0200
Organization: Ericpol Telecom sp. z o.o.
Lines: 56
Message-ID: <e0anb1$qks$1@inews.gazeta.pl>
References: <e09c3r$lg3$1@news.onet.pl>
Reply-To: "Przemek Pokrywka" <adres@zastrzezony.com>
NNTP-Posting-Host: kr.ericpol.pl
X-Trace: inews.gazeta.pl 1143529633 27292 213.17.128.178 (28 Mar 2006 07:07:13 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Tue, 28 Mar 2006 07:07:13 +0000 (UTC)
X-Priority: 3
X-User: pjachowi
X-Comment-To: Przemek Pokrywka <adres@zastrzezony.com>
X-Library: Indy 9.00.10
X-Newsreader: NewzCrawler/1.8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit