From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public From: Patrick Logan Subject: Re: Software landmines (loops) Date: 1998/09/02 Message-ID: #1/1 X-Deja-AN: 387236979 References: <6sjms6$7c4$1@hirame.wwa.com> Organization: Teleport - Portland's Public Access (503) 220-1016 NNTP-Posting-Date: Wed, 02 Sep 1998 12:59:41 PDT Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-02T00:00:00+00:00 List-Id: In comp.object Patrick Doyle wrote: : By this logic, polymorphism is indeterminate too. When you call a : polymorphic function, you have no idea where control will : wind up. This is a Good Thing. It's what makes polymorphism : powerful: the fact that you're giving someone else some control : over the situation makes your code flexible. These are apples and oranges. Why the comparison? If your method performs polymorphic message sends to multiple objects, there is a contract each object has to uphold. If your method throws an exception, there is a contract it has to uphold, but beyond that, its work is done. There is a contract the caller has to uphold, but that is of no concern to your method. You're done. If your method has allocated some resources and your method throws an exception, your method has to put those resources into whatever state is specified by your contract. If your method has specified no contract about those resources, then it does not have to do anything in particular with them. Common sense may dictate that they be deallocated so the state of the world is as much like the state of the world before your method was called. But if commons sense dictates this, then I would argue so should your method's contract, explicitly! -- Patrick Logan (H) mailto:plogan@teleport.com (W) mailto:patrickl@gemstone.com http://www.gemstone.com