Article View: pl.comp.objects
Article #14390Re: Wyrzucenie wyjątku, czy zwrócenie null?
From: x-plorer
Date: Tue, 28 Mar 2006 10:06
Date: Tue, 28 Mar 2006 10:06
46 lines
2883 bytes
2883 bytes
Użytkownik "Przemek Pokrywka" <adres@zastrzezony.com> napisał w wiadomości news:e09gjn$737$1@news.onet.pl... > uważam, że teza postaci: > > "ma prawo nie zostać odnaleziona" => "nieodnalezienie jej nie jest > sytuacją wyjątkową" => "nie należy zgłaszać wyjątku" > > nie jest prawdziwa (ze względu na drugą implikację). > > Zapraszam jednak do dzielenia się innymi argumentami, gdyby ktoś doszedł > do innych wniosków. Witam. Pozwolę sobie zaprezentować zdanie odmienne. Moje argumenty: 1. Już samo określenie wyjątek sugeruje, że chodzi o sytuację rzadko spotykaną. Nieznalezienie obiektu jest w opisanym przypadku równie uprawnione jak jego znalezienie. Sytuacja daje się łatwo obsłużyć w językach bez obsługi wyjątków. (To argument dość subiektywny, więc nie najmocniejszy.) 2. Czytelność kodu. Uważam, że linia postaci: if (person == null) // nie znaleziono osoby jest bardziej czytelna niż blok chwytania wyjątku. 3. Efektywność. Porównanie z nullem to fizycznie banalne sprawdzenie. Rzucanie i chwytanie wyjątku jest kosztowne. Nie wytaczajmy armaty na wróble. Posłużenie się wyjątkiem miałoby wg mnie sens w następującej sytuacji: W przebiegu może zajść więcej negatywnych zdarzeń, np. brak uprawnień do danych osoby, dane osoby uniemozliwiają przeprowadzenie dalszych obliczeń (np. obliczenie dni urlopu dla emeryta) itp. W takiej sytuacji można załatwić wszystkie możliwe wyjątki jednym blokiem przechwytywania, pod warunkiem, że ich sposób obsłużenia będzie identyczny niezależnie od typu wyjątku, np. opis wyjątku jest czytelny dla użytkownika i wystarczy wyświetlić go w oknie komunikatu. Pozdrawiam x-plorer
Technical Details
Message-ID:
<e0b1re$bdc$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.cyf-kr.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mailReferences:
<e09c3r$lg3$1@news.onet.pl> <e09f0h$cis$1@news.task.gda.pl> <e09gjn$737$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.cyf-kr.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail From: "x-plorer" <panpatafianWYTNIJ@poczta.onet.pl> Newsgroups: pl.comp.objects Subject: Re: Wyrzucenie wyjątku, czy zwrócenie null? Date: Tue, 28 Mar 2006 12:06:09 +0200 Organization: Onet.pl Lines: 48 Message-ID: <e0b1re$bdc$1@news.onet.pl> References: <e09c3r$lg3$1@news.onet.pl> <e09f0h$cis$1@news.task.gda.pl> <e09gjn$737$1@news.onet.pl> NNTP-Posting-Host: 195.205.169.100 X-Trace: news.onet.pl 1143540400 11692 195.205.169.100 (28 Mar 2006 10:06:40 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Tue, 28 Mar 2006 10:06:40 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-Sender: OHVvHMr2BvivqsoBIBSYi+zvtcc15+ov X-RFC2646: Format=Flowed; Response X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-Priority: 3 X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit