Exception handling

From: Douglas G. Danforth <"Douglas>
Date: Tue, 14 Sep 2004 14:58:33 -0400

----boundary-LibPST-iamunique-2111234890_-_-
Content-type: text/plain

Gérard & René,

If I might wade in a little on this discussion I have never found error
handling by using a global routine useful simply because the definition
of error is a function of the "context" in which it is found so no
global handler can correctly process it. For example, if I fail to open
an old file is that an error or is it a signal to the program that the
file does not exist and hence one should branch to some other bit of code?

I sometimes program in pure 'boolean' style where every procedure is
either true or false. A 'ladder' like sequence of 'if then else if ...'
results. Procedure P (which may be a test for zero) can then be used in
various contexts where it may be considered a success or failure.

-Doug

Gérard Meunier wrote:
>>Well, Gérard, being a software developer by profession, I'd have to tell
>
> you that n.d. results lead to "trapping" in a lot of languages. There are
> some, like ADA, or PLI, where you can handle errors in an "On Error"
> routine, but usually they tend to make the programs less logical and usable.
>
>>It was one of the very first rules that I learned, to prevent a division

>
> by 0 beforehand.
>
>>I mean, what's the logic behind your question? You can either check for

>
> "division by zero" before you make the division, or your can handle the
> "division by zero" exception afterwards. Where's the big benefit?
>
>>IMHO, not checking for div by 0 is sloppy pogramming, and it is totally

>
> against the logic of Oberon, where you are expressis verbis told that you
> should assert all that is necessary for any procedure etc. before you
> perform it.
>
> Thank you René,
>
> You may be right. Obviously, a program is better if there is no error
> inside. I have to think a little more on this point.
> I'm in a situation where there can be a lot af arithmetic errors, but where
> these errors are harmless: the important points are that the program must
> never stop (no trap) and that the user is warned that an error has occurred
> somewhere and that the result is unreliable. It seemed to me that a
> centralized way of dealing with these errors could be a solution. Of course,
> it may happen that a non harmless error occurrs too and is not trapped. In
> this case, the program could become unstable. So...
> Nevertheless, I think it's impossible to do in BB what I expected.
>
> Regards.
>
> Gérard
>
> --------------------------------------------
>
> To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
> blackbox-request{([at]})nowhere.xy
>
> To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.
>
> Send any problem reports or questions related to this email list to the list owner at
> owner-blackbox{([at]})nowhere.xy
>
> Current posting policy:
>
> a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.
>
> b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.
>
>
--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-2111234890_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzc1xmY2hhcnNldDAgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJc
Zm5pbFxmY2hhcnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBO
ZXc7fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7
fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyMCBHXCdlOXJhcmQgJiBSZW5cJ2U5
LFxwYXINClxwYXINCklmIEkgbWlnaHQgd2FkZSBpbiBhIGxpdHRsZSBvbiB0aGlzIGRpc2N1c3Np
b24gSSBoYXZlIG5ldmVyIGZvdW5kIGVycm9yIFxwYXINCmhhbmRsaW5nIGJ5IHVzaW5nIGEgZ2xv
YmFsIHJvdXRpbmUgdXNlZnVsIHNpbXBseSBiZWNhdXNlIHRoZSBkZWZpbml0aW9uIFxwYXINCm9m
IGVycm9yIGlzIGEgZnVuY3Rpb24gb2YgdGhlICJjb250ZXh0IiBpbiB3aGljaCBpdCBpcyBmb3Vu
ZCBzbyBubyBccGFyDQpnbG9iYWwgaGFuZGxlciBjYW4gY29ycmVjdGx5IHByb2Nlc3MgaXQuICBG
b3IgZXhhbXBsZSwgaWYgSSBmYWlsIHRvIG9wZW4gXHBhcg0KYW4gb2xkIGZpbGUgaXMgdGhhdCBh
biBlcnJvciBvciBpcyBpdCBhIHNpZ25hbCB0byB0aGUgcHJvZ3JhbSB0aGF0IHRoZSBccGFyDQpm
aWxlIGRvZXMgbm90IGV4aXN0IGFuZCBoZW5jZSBvbmUgc2hvdWxkIGJyYW5jaCB0byBzb21lIG90
aGVyIGJpdCBvZiBjb2RlP1xwYXINClxwYXINCkkgc29tZXRpbWVzIHByb2dyYW0gaW4gcHVyZSAn
Ym9vbGVhbicgc3R5bGUgd2hlcmUgZXZlcnkgcHJvY2VkdXJlIGlzIFxwYXINCmVpdGhlciB0cnVl
IG9yIGZhbHNlLiAgQSAnbGFkZGVyJyBsaWtlIHNlcXVlbmNlIG9mICdpZiB0aGVuIGVsc2UgaWYg
Li4uJyBccGFyDQpyZXN1bHRzLiAgUHJvY2VkdXJlIFAgKHdoaWNoIG1heSBiZSBhIHRlc3QgZm9y
IHplcm8pIGNhbiB0aGVuIGJlIHVzZWQgaW4gXHBhcg0KdmFyaW91cyBjb250ZXh0cyB3aGVyZSBp
dCBtYXkgYmUgY29uc2lkZXJlZCBhIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5ccGFyDQpccGFyDQotRG91
Z1xwYXINClxwYXINCkdcJ2U5cmFyZCBNZXVuaWVyIHdyb3RlOlxwYXINCj4+V2VsbCwgR1wnZTly
YXJkLCBiZWluZyBhIHNvZnR3YXJlIGRldmVsb3BlciBieSBwcm9mZXNzaW9uLCBJJ2QgaGF2ZSB0
byB0ZWxsXHBhcg0KPiBccGFyDQo+IHlvdSB0aGF0IG4uZC4gcmVzdWx0cyBsZWFkIHRvICJ0cmFw
cGluZyIgaW4gYSBsb3Qgb2YgbGFuZ3VhZ2VzLiBUaGVyZSBhcmVccGFyDQo+IHNvbWUsIGxpa2Ug
QURBLCBvciBQTEksIHdoZXJlIHlvdSBjYW4gaGFuZGxlIGVycm9ycyBpbiBhbiAiT24gRXJyb3Ii
XHBhcg0KPiByb3V0aW5lLCBidXQgdXN1YWxseSB0aGV5IHRlbmQgdG8gbWFrZSB0aGUgcHJvZ3Jh
bXMgbGVzcyBsb2dpY2FsIGFuZCB1c2FibGUuXHBhcg0KPiBccGFyDQo+Pkl0IHdhcyBvbmUgb2Yg
dGhlIHZlcnkgZmlyc3QgcnVsZXMgdGhhdCBJIGxlYXJuZWQsIHRvIHByZXZlbnQgYSBkaXZpc2lv
blxwYXINCj4gXHBhcg0KPiBieSAwIGJlZm9yZWhhbmQuXHBhcg0KPiBccGFyDQo+PkkgbWVhbiwg
d2hhdCdzIHRoZSBsb2dpYyBiZWhpbmQgeW91ciBxdWVzdGlvbj8gWW91IGNhbiBlaXRoZXIgY2hl
Y2sgZm9yXHBhcg0KPiBccGFyDQo+ICJkaXZpc2lvbiBieSB6ZXJvIiBiZWZvcmUgeW91IG1ha2Ug
dGhlIGRpdmlzaW9uLCBvciB5b3VyIGNhbiBoYW5kbGUgdGhlXHBhcg0KPiAiZGl2aXNpb24gYnkg
emVybyIgZXhjZXB0aW9uIGFmdGVyd2FyZHMuIFdoZXJlJ3MgdGhlIGJpZyBiZW5lZml0P1xwYXIN
Cj4gXHBhcg0KPj5JTUhPLCBub3QgY2hlY2tpbmcgZm9yIGRpdiBieSAwIGlzIHNsb3BweSBwb2dy
YW1taW5nLCBhbmQgaXQgaXMgdG90YWxseVxwYXINCj4gXHBhcg0KPiBhZ2FpbnN0IHRoZSBsb2dp
YyBvZiBPYmVyb24sIHdoZXJlIHlvdSBhcmUgZXhwcmVzc2lzIHZlcmJpcyB0b2xkIHRoYXQgeW91
XHBhcg0KPiBzaG91bGQgYXNzZXJ0IGFsbCB0aGF0IGlzIG5lY2Vzc2FyeSBmb3IgYW55IHByb2Nl
ZHVyZSBldGMuIGJlZm9yZSB5b3VccGFyDQo+IHBlcmZvcm0gaXQuXHBhcg0KPiBccGFyDQo+IFRo
YW5rIHlvdSBSZW5cJ2U5LFxwYXINCj4gXHBhcg0KPiBZb3UgbWF5IGJlIHJpZ2h0LiBPYnZpb3Vz
bHksIGEgcHJvZ3JhbSBpcyBiZXR0ZXIgaWYgdGhlcmUgaXMgbm8gZXJyb3JccGFyDQo+IGluc2lk
ZS4gSSBoYXZlIHRvIHRoaW5rIGEgbGl0dGxlIG1vcmUgb24gdGhpcyBwb2ludC5ccGFyDQo+IEkn
bSBpbiBhIHNpdHVhdGlvbiB3aGVyZSB0aGVyZSBjYW4gYmUgYSBsb3QgYWYgYXJpdGhtZXRpYyBl
cnJvcnMsIGJ1dCB3aGVyZVxwYXINCj4gdGhlc2UgZXJyb3JzIGFyZSBoYXJtbGVzczogdGhlIGlt
cG9ydGFudCBwb2ludHMgYXJlIHRoYXQgdGhlIHByb2dyYW0gbXVzdFxwYXINCj4gbmV2ZXIgc3Rv
cCAobm8gdHJhcCkgYW5kIHRoYXQgdGhlIHVzZXIgaXMgd2FybmVkIHRoYXQgYW4gZXJyb3IgaGFz
IG9jY3VycmVkXHBhcg0KPiBzb21ld2hlcmUgYW5kIHRoYXQgdGhlIHJlc3VsdCBpcyB1bnJlbGlh
YmxlLiBJdCBzZWVtZWQgdG8gbWUgdGhhdCBhXHBhcg0KPiBjZW50cmFsaXplZCB3YXkgb2YgZGVh
bGluZyB3aXRoIHRoZXNlIGVycm9ycyBjb3VsZCBiZSBhIHNvbHV0aW9uLiBPZiBjb3Vyc2UsXHBh
cg0KPiBpdCBtYXkgaGFwcGVuIHRoYXQgYSBub24gaGFybWxlc3MgZXJyb3Igb2NjdXJycyB0b28g
YW5kIGlzIG5vdCB0cmFwcGVkLiBJblxwYXINCj4gdGhpcyBjYXNlLCB0aGUgcHJvZ3JhbSBjb3Vs
ZCBiZWNvbWUgdW5zdGFibGUuIFNvLi4uXHBhcg0KPiBOZXZlcnRoZWxlc3MsIEkgdGhpbmsgaXQn
cyBpbXBvc3NpYmxlIHRvIGRvIGluIEJCIHdoYXQgSSBleHBlY3RlZC5ccGFyDQo+IFxwYXINCj4g
UmVnYXJkcy5ccGFyDQo+IFxwYXINCj4gR1wnZTlyYXJkXHBhcg0KPiBccGFyDQo+IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KPiBccGFyDQo+IFRvIHVu
c3Vic2NyaWJlIGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5p
bmcgdGhlIHdvcmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQo+ICAgIGJsYWNrYm94LXJlcXVlc3RA
b2Jlcm9uLmNoXHBhcg0KPiBccGFyDQo+IFRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNv
bW1hbmRzIGFuZCBpbnN0cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNv
bnRhaW5pbmcgdGhlIHdvcmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINCj4gXHBh
cg0KPiBTZW5kIGFueSBwcm9ibGVtIHJlcG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhp
cyBlbWFpbCBsaXN0IHRvIHRoZSBsaXN0IG93bmVyIGF0XHBhcg0KPiAgICBvd25lci1ibGFja2Jv
eEBvYmVyb24uY2hccGFyDQo+IFxwYXINCj4gQ3VycmVudCBwb3N0aW5nIHBvbGljeTpccGFyDQo+
IFxwYXINCj4gYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBhZGRyZXNzIGJ5IHdo
aWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgbWFpbGluZyBsaXN0LiBUaGF0IHdheSwgdGhl
IGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlvdSBhcyBzdWJzY3JpYmVyIGFuZCBmb3J3YXJk
IHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwgd2l0aG91dCBjcmVhdGluZyBhbnkgb3ZlcmhlYWQu
XHBhcg0KPiBccGFyDQo+IGIpIElmLCBmb3Igc29tZSByZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBm
cm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQsIHlvdXIgbWVzc2Fn
ZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBzcGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0
IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBzb21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92
ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHBhcg0KPiBccGFyDQo+IFxwYXINCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3Jp
YmUgZnJvbSB0aGlzIG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUg
d29yZCAidW5zdWJzY3JpYmUiIHRvOlxwYXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNo
XHBhcg0KXHBhcg0KVG8gZ2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGlu
c3RydWN0aW9ucyBvbiB0aGVpciB1c2FnZSwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUg
d29yZCAiaGVscCIgdG8gdGhlIGFib3ZlIGFkZHJlc3MuXHBhcg0KXHBhcg0KU2VuZCBhbnkgcHJv
YmxlbSByZXBvcnRzIG9yIHF1ZXN0aW9ucyByZWxhdGVkIHRvIHRoaXMgZW1haWwgbGlzdCB0byB0
aGUgbGlzdCBvd25lciBhdFxwYXINCiAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxw
YXINCkN1cnJlbnQgcG9zdGluZyBwb2xpY3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hv
dWxkIHVzZSB0aGUgc2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0
aGUgbWFpbGluZyBsaXN0LiBUaGF0IHdheSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXpl
IHlvdSBhcyBzdWJzY3JpYmVyIGFuZCBmb3J3YXJkIHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwg
d2l0aG91dCBjcmVhdGluZyBhbnkgb3ZlcmhlYWQuXHBhcg0KXHBhcg0KYikgSWYsIGZvciBzb21l
IHJlYXNvbiwgeW91IGNhbm5vdCBwb3N0IGZyb20gdGhlIGFkZHJlc3MsIGJ5IHdoaWNoIHlvdSBh
cmUgc3Vic2NyaWJlZCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNw
YW0uIFBsZWFzZSB1bmRlcnN0YW5kIHRoYXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNv
bWUgZGVsYXksIGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvciBob2x5ZGF5cy5ccGFyDQp9



----boundary-LibPST-iamunique-2111234890_-_---
Received on Tue Sep 14 2004 - 20:58:33 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:36 UTC