Article View: pl.comp.objects
Article #14508Re: Wyrzucenie wyjątku, czy zwrócenie nul l?
From: Piotr Jachowicz
Date: Tue, 28 Mar 2006 07:07
Date: Tue, 28 Mar 2006 07:07
56 lines
2727 bytes
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 osobicie 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-mailReferences:
<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