Article View: pl.comp.objects
Article #14393Re: Wyrzucenie wyjątku, czy zwrócenie null?
From: Przemek Pokrywka
Date: Tue, 28 Mar 2006 22:47
Date: Tue, 28 Mar 2006 22:47
41 lines
3015 bytes
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-mailReferences:
<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