- ASSERT fault?

From: [at]} <Wojtek>
Date: Mon, 12 Jun 2006 14:04:44 -0400 (EDT)

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

On Mon, 12 Jun 2006, Rene Krywult wrote:

> Wojtek Skulski schrieb:
>
> >On Mon, 12 Jun 2006, Marco Ciot wrote:
> >
> >>The intention of the programmer when placing an ASSERT should never be to
> >>halt the program at that point but to assert some important condition for
> >>the subsequent program code.
> >
> >What do you mean by "assert some important condition"? What should a
> >program do when the assertion fails? Right now it halts. If this is not
> >what you want, then what action are you proposing instead?
> >
> >
> Sorry, but in no serious program for a non-technical customer a trap is
> a *wanted* result ;-).

Yes of course. However, Marco did not say this. He said something about
"assert some important condition" without saying what this should mean.


> If the error is the customer's fault, he needs a serious error message
> telling him what to do. And if it is not his fault, then the programmer
> has to make sure that the error doesn't occur. "Traps" may be fine if
> you do some programming for yourself, but if you sell software, you'd
> better not program "traps";-).

You are now saying how the trap should be handled. Right now it pops up
an unpleasant-looking debugger window which is good for a developer
but will scare a customer. This is not a language issue but rather an
implementation issue.

Two possible solutions:

1. Define various handlers for different trap ranges. E.g., traps
  between 20 nd 60 will pop up green windows with a smile, the range
  between 61 and 100 will popup a red window with a wiggling finger,
  and trap 1000 will turn off power.

2. Use MyTools.MyASSERT (expression, number) to catch a range of
   numbers for which you have implemented your own handlers,
   pass-through to the regular ASSERT otherwise.

Of course there must be better ideas around.

W.

--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy



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

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIE9uIE1vbiwgMTIgSnVuIDIwMDYsIFJlbmUgS3J5
d3VsdCB3cm90ZTpccGFyDQpccGFyDQo+IFdvanRlayBTa3Vsc2tpIHNjaHJpZWI6XHBhcg0KPlxw
YXINCj4gPk9uIE1vbiwgMTIgSnVuIDIwMDYsIE1hcmNvIENpb3Qgd3JvdGU6XHBhcg0KPiA+XHBh
cg0KPiA+PlRoZSBpbnRlbnRpb24gb2YgdGhlIHByb2dyYW1tZXIgd2hlbiBwbGFjaW5nIGFuIEFT
U0VSVCBzaG91bGQgbmV2ZXIgYmUgdG9ccGFyDQo+ID4+aGFsdCB0aGUgcHJvZ3JhbSBhdCB0aGF0
IHBvaW50IGJ1dCB0byBhc3NlcnQgc29tZSBpbXBvcnRhbnQgY29uZGl0aW9uIGZvclxwYXINCj4g
Pj50aGUgc3Vic2VxdWVudCBwcm9ncmFtIGNvZGUuXHBhcg0KPiA+XHBhcg0KPiA+V2hhdCBkbyB5
b3UgbWVhbiBieSAiYXNzZXJ0IHNvbWUgaW1wb3J0YW50IGNvbmRpdGlvbiI/IFdoYXQgc2hvdWxk
IGFccGFyDQo+ID5wcm9ncmFtIGRvIHdoZW4gdGhlIGFzc2VydGlvbiBmYWlscz8gUmlnaHQgbm93
IGl0IGhhbHRzLiBJZiB0aGlzIGlzIG5vdFxwYXINCj4gPndoYXQgeW91IHdhbnQsIHRoZW4gd2hh
dCBhY3Rpb24gYXJlIHlvdSBwcm9wb3NpbmcgaW5zdGVhZD9ccGFyDQo+ID5ccGFyDQo+ID5ccGFy
DQo+IFNvcnJ5LCBidXQgaW4gbm8gc2VyaW91cyBwcm9ncmFtIGZvciBhIG5vbi10ZWNobmljYWwg
Y3VzdG9tZXIgYSB0cmFwIGlzXHBhcg0KPiBhICp3YW50ZWQqIHJlc3VsdCA7LSkuXHBhcg0KXHBh
cg0KWWVzIG9mIGNvdXJzZS4gSG93ZXZlciwgTWFyY28gZGlkIG5vdCBzYXkgdGhpcy4gSGUgc2Fp
ZCBzb21ldGhpbmcgYWJvdXRccGFyDQoiYXNzZXJ0IHNvbWUgaW1wb3J0YW50IGNvbmRpdGlvbiIg
d2l0aG91dCBzYXlpbmcgd2hhdCB0aGlzIHNob3VsZCBtZWFuLlxwYXINClxwYXINCj4gSWYgdGhl
IGVycm9yIGlzIHRoZSBjdXN0b21lcidzIGZhdWx0LCBoZSBuZWVkcyBhIHNlcmlvdXMgZXJyb3Ig
bWVzc2FnZVxwYXINCj4gdGVsbGluZyBoaW0gd2hhdCB0byBkby4gQW5kIGlmIGl0IGlzIG5vdCBo
aXMgZmF1bHQsIHRoZW4gdGhlIHByb2dyYW1tZXJccGFyDQo+IGhhcyB0byBtYWtlIHN1cmUgdGhh
dCB0aGUgZXJyb3IgZG9lc24ndCBvY2N1ci4gIlRyYXBzIiBtYXkgYmUgZmluZSBpZlxwYXINCj4g
eW91IGRvIHNvbWUgcHJvZ3JhbW1pbmcgZm9yIHlvdXJzZWxmLCBidXQgaWYgeW91IHNlbGwgc29m
dHdhcmUsIHlvdSdkXHBhcg0KPiBiZXR0ZXIgbm90IHByb2dyYW0gInRyYXBzIjstKS5ccGFyDQpc
cGFyDQpZb3UgYXJlIG5vdyBzYXlpbmcgaG93IHRoZSB0cmFwIHNob3VsZCBiZSBoYW5kbGVkLiBS
aWdodCBub3cgaXQgcG9wcyB1cFxwYXINCmFuIHVucGxlYXNhbnQtbG9va2luZyBkZWJ1Z2dlciB3
aW5kb3cgd2hpY2ggaXMgZ29vZCBmb3IgYSBkZXZlbG9wZXJccGFyDQpidXQgd2lsbCBzY2FyZSBh
IGN1c3RvbWVyLiBUaGlzIGlzIG5vdCBhIGxhbmd1YWdlIGlzc3VlIGJ1dCByYXRoZXIgYW5ccGFy
DQppbXBsZW1lbnRhdGlvbiBpc3N1ZS5ccGFyDQpccGFyDQpUd28gcG9zc2libGUgc29sdXRpb25z
OlxwYXINClxwYXINCjEuIERlZmluZSB2YXJpb3VzIGhhbmRsZXJzIGZvciBkaWZmZXJlbnQgdHJh
cCByYW5nZXMuIEUuZy4sIHRyYXBzXHBhcg0KICBiZXR3ZWVuIDIwIG5kIDYwIHdpbGwgcG9wIHVw
IGdyZWVuIHdpbmRvd3Mgd2l0aCBhIHNtaWxlLCB0aGUgcmFuZ2VccGFyDQogIGJldHdlZW4gNjEg
YW5kIDEwMCB3aWxsIHBvcHVwIGEgcmVkIHdpbmRvdyB3aXRoIGEgd2lnZ2xpbmcgZmluZ2VyLFxw
YXINCiAgYW5kIHRyYXAgMTAwMCB3aWxsIHR1cm4gb2ZmIHBvd2VyLlxwYXINClxwYXINCjIuIFVz
ZSBNeVRvb2xzLk15QVNTRVJUIChleHByZXNzaW9uLCBudW1iZXIpIHRvIGNhdGNoIGEgcmFuZ2Ug
b2ZccGFyDQogICBudW1iZXJzIGZvciB3aGljaCB5b3UgaGF2ZSBpbXBsZW1lbnRlZCB5b3VyIG93
biBoYW5kbGVycyxccGFyDQogICBwYXNzLXRocm91Z2ggdG8gdGhlIHJlZ3VsYXIgQVNTRVJUIG90
aGVyd2lzZS5ccGFyDQpccGFyDQpPZiBjb3Vyc2UgdGhlcmUgbXVzdCBiZSBiZXR0ZXIgaWRlYXMg
YXJvdW5kLlxwYXINClxwYXINClcuXHBhcg0KXHBhcg0KLS0tIEJsYWNrQm94XHBhcg0KLS0tIHNl
bmQgc3ViamVjdCBIRUxQIG9yIFVOU1VCU0NSSUJFIHRvIGJsYWNrYm94QG9iZXJvbi5jaH19AGNo
AFNNVFAAYmw=


----boundary-LibPST-iamunique-1976151787_-_---
Received on Mon Jun 12 2006 - 20:04:44 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:27:51 UTC