HEAR, HEAR!

> Incidentally, I find the worryingly common practice of 
> setting all variables to zero / null at the top of a program 
> very annoying as it hides the very useful unassigned variable 
> trap, leaving you thinking your program works when actually 
> it doesn't.
> 
> Martin Phillips
> Ladybridge Systems


Yes, this practice HIDES real errors.

I too see it a lot, and I think it is absolutely disgusting.
Maybe the practice originated with programmers who were used to working
in languages where they had to declare variables & var types at the top
of their program.  They just felt kinda naked without saying,
I=0;A='';[EMAIL PROTECTED], at the top of their basic code.  A poor reason.

Don't do it.

Be aware that the *occasional* such message may hint at a *multitude* of
unreported error incidents.  Especially when the error is deep inside an
important loops.  Let me illustrate by expanding Martin's example:

   LOOP
      GOSUB ASSIGN.A
      BEGIN CASE
         CASE A = 1; B = 'Apple'
         CASE A = 2; B = 'Orange'
         CASE A = 3; B = 'Banana'
      END CASE
      DISPLAY B
   REPEAT

You will get an "unassigned error" message only if A just happens to not
be 1,2,or 3 on the very FIRST pass through the loop.   Subsequent passes
where that occurs would use the value assigned to B on the previous
iteration.  UV will be happy to do so.

Initializing B at the top of the program, above the loop, would
eliminate those occasional error message but not eliminate the buggy
code or a fundamental logic flaw.

Try to initialize & assign variables exactly where they apply.  Then
watch for error messages that point out your flaws, and be grateful for
them.

Chuck Stevenson
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users

Reply via email to