Article View: de.comp.lang.c++
Article #1629Re: Verwendung von char* in C++
From: Harald Fuchs
Date: Fri, 23 Feb 1996 18:53
Date: Fri, 23 Feb 1996 18:53
39 lines
3075 bytes
3075 bytes
Watson <sayegh@fokus.gmd.de> writes:
> Mein Hauptkritikpunkt an Exceptions war ja auch aesthetischer
> Natur ;-) Saehen sie besser aus, wuerde ich assert() auch nicht
> mehr benutzen.
Meiner Ansicht nach sind Exceptions *keine* Alternative zu
Exceptions. Ich benutze assert()s, um mich vor mir selbst und meiner
eigenen Dummheit zu schützen: assert()s stehen für Dinge, die von der
Logik her unmöglich passieren können, und sind Hinweise darauf, sich
bei der Weiterentwicklung des Programms darüber Gedanken zu machen, ob
diese Annahme auch wirklich zutreffend sind. Exceptions sind eher ein
Mittel zum Transfer der Kontrolle in _unwahrscheinlichen_, aber eben
doch gelegentlich auftretenden Fällen.
Auch wenn Du Exceptions nicht magst: Du hast keine Chance, ihnen zu
entgehen. Jedes nichttriviale Programm verwendet Libraries, und diese
Libraries verwenden zunehmend Exceptions. Das hat fundamentale
Einflüsse auch auf Deinen Programmcode: Konstrukte wie
alloc_resource ();
some_func ();
free_resource ();
sind neuerdings gefährlich, weil some_func() (oder eine davon aufgerufene
Funktion) eine Exception auslösen kann. Dadurch wird diesem
unschuldig aussehenden Programmstück die Kontrolle unter dem A****
weggezogen. free_resource() wird wider Erwarten nicht aufgerufen, und
schon hat Dein Programm ein Leck.
Pointer außerhalb von Klassen sind ein gutes Beispiel für derartigen
"gefährlichen" Code. Ich will Dir gern zugestehen, daß bei
Wegwerfprogrammen die Verwendung von sicheren Alternativen nicht
unbedingt erforderlich ist, aber nachdem in dieser Gruppe offenbar
auch viele totale Anfänger mitlesen, sollte man diesen Leuten nicht
suggerieren, daß dies die "normale" Art sei, die Sprache zu
verwenden. Korrigierende Hinweise erscheinen mir da durchaus
angebracht - insbesondere dann, wenn die sicheren Alternativen auch
noch einfacher zu verwenden sind.
Technical Details
Message-ID:
<pu68cxlvqb.fsf@themroc.colibri.de>Path:
arc1-ca.pugleaf.net!rz.uni-karlsruhe.de!not-for-mailReferences:
<3120B25C.2650@fokus.gmd.de> <31229576.0@news.uni-konstanz.de> <pu91i3yvzc.fsf@themroc.colibri.de> <BOP9B96C@wuschel.ibb.schwaben.com> <4gdb6p$i5j@news.BelWue.DE> <W7Q9BM6M@wuschel.ibb.schwaben.com> <4ggkbr$7vr@news.BelWue.DE> <312C5E01.1435@fokus.gmd.de> <4gibof$1qa@news.BelWue.DE> <312D9B08.1F4F@fokus.gmd.de> <4gk9cp$4bf@news.BelWue.DE> <312DD801.65BA@fokus.gmd.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!rz.uni-karlsruhe.de!not-for-mail From: hf@colibri.de (Harald Fuchs) Newsgroups: de.comp.lang.c++ Subject: Re: Verwendung von char* in C++ Date: 23 Feb 1996 19:53:16 +0100 Organization: Colibri GmbH, Germany Sender: hf@themroc.colibri.de Message-ID: <pu68cxlvqb.fsf@themroc.colibri.de> References: <3120B25C.2650@fokus.gmd.de> <31229576.0@news.uni-konstanz.de> <pu91i3yvzc.fsf@themroc.colibri.de> <BOP9B96C@wuschel.ibb.schwaben.com> <4gdb6p$i5j@news.BelWue.DE> <W7Q9BM6M@wuschel.ibb.schwaben.com> <4ggkbr$7vr@news.BelWue.DE> <312C5E01.1435@fokus.gmd.de> <4gibof$1qa@news.BelWue.DE> <312D9B08.1F4F@fokus.gmd.de> <4gk9cp$4bf@news.BelWue.DE> <312DD801.65BA@fokus.gmd.de> NNTP-Posting-Host: teco10a.teco.uni-karlsruhe.de Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit In-reply-to: Watson's message of Fri, 23 Feb 1996 16:06:41 +0100 X-WWW-Home-Page: http://www.colibri.de/~hf/ X-PGP-Public-Key: finger hf@colibri.de X-PGP-Fingerprint: 09 4E C4 A2 B2 C5 33 1A 79 80 5D 39 BD 9B 89 39 X-Disclaimer: Kore wa Colibri no iken dewa arimasen X-Newsreader: Gnus v5.0.9