🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14393

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

#14393
From: Przemek Pokrywka
Date: Tue, 28 Mar 2006 22:47
41 lines
3015 bytes
Adam Przybyłek napisał(a):
> Blad odczytu/zapisu to wlasnie sytuacja nietypowa. Normalnie zapisujac plik
> na dysku oczekujesz, ze zapis sie uda.

Tak, w zupełności.

> Co innego odnalezienie pliku.

Doprawdy?

> Wyswietlasz okienko zeby uzytkownik wpisal plik, ktory chce otworzyc. Jezeli
> plik taki nie istnieje to nie jest zaden wyjatek i prosisz uzytkownika, aby
> wprowadzil inna nazwe pliku. 

A co, jeśli nie wyjątek? Użytkownik nie wpisuje nazwy pliku, o którym 
wie, że nie istnieje. Jeśli ten plik wbrew jego przekonaniom nie 
istnieje, lub on sam się pomylił, to jest to dla niego sytuacja 
niespodziewana i nie można jej uznać za sytuację "normalną".

Sens wyboru właściwej opcji (wyjątek/instrukcja warunkowa) da się 
zrozumieć przechodząc do kodu, który w wypadku użycia wyjątków czyta się 
znacznie naturalniej i który w bardziej przejrzysty sposób uwidacznia 
swoje intencje.

> Jesli natomiast plik podany przez uzytkownika
> istnieje, ale z jakichs wzgledow nie moze byc odczytany, np. bad sector to
> wtedy jest sytuacja wyjatkowa i rzucany jest wyjatek.

Po lekturze tego zdania odnoszę wrażenie, że zakładasz istnienie 
jakiegoś pojedynczego, zunifikowanego sposobu obsługi wyjątków: "rzucany 
jest wyjątek" nasuwa mi skojarzenia z jakimś okienkiem dialogowym z 
napisem "Unhandled exception", nic nie mówiącym numerem i przyciskiem 
"ok", albo z niebieskim ekranem ;) - na ile się orientuję, jest to 
popularny sposób obsługi błędów w aplikacjach C# będących w trakcie rozwoju.
Jeśli tak, to nic bardziej błędnego - ja zakładam, że wszystkie wyjątki 
są pod ścisłą kontrolą aplikacji, która może w przypadku ich wystąpienia 
np. poprosić użytkownika o inną nazwę pliku, ukrywając przed nim fakt 
wystąpienia jakiegokolwiek wyjątku.

--
Przemysław Pokrywka
Technical Details
Message-ID: <e0ced6$f7g$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.us.edu.pl!newsfeed.silweb.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> <e0b1re$bdc$1@news.onet.pl> <e0c8eh$ur8$1@news.onet.pl> <e0cd04$ljh$1@news.task.gda.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.us.edu.pl!newsfeed.silweb.pl!news.onet.pl!not-for-mail
From: Przemek Pokrywka <adres@zastrzezony.com>
Newsgroups: pl.comp.objects
Subject: Re: Wyrzucenie wyjątku, czy
 zwrócenie null?
Date: Wed, 29 Mar 2006 00:47:01 +0200
Organization: Onet.pl
Lines: 41
Message-ID: <e0ced6$f7g$1@news.onet.pl>
References: <e09c3r$lg3$1@news.onet.pl> <e09f0h$cis$1@news.task.gda.pl> <e09gjn$737$1@news.onet.pl> <e0b1re$bdc$1@news.onet.pl> <e0c8eh$ur8$1@news.onet.pl> <e0cd04$ljh$1@news.task.gda.pl>
NNTP-Posting-Host: 041.inet.polhost.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1143586022 15600 80.48.120.41 (28 Mar 2006 22:47:02 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Tue, 28 Mar 2006 22:47:02 +0000 (UTC)
X-Sender: 5aB4pqMdeQG1O30L902dNmlAzoKeNKcS
In-Reply-To: <e0cd04$ljh$1@news.task.gda.pl>
X-Accept-Language: pl, en-us, en
User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit