🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14390

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

#14390
From: x-plorer
Date: Tue, 28 Mar 2006 10:06
46 lines
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-mail
References: <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