Resume Next?

Alex Tweedly alex at tweedly.net
Fri Mar 4 12:57:25 EST 2005


Frank D. Engel, Jr. wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Well, you can improve on that slightly at least (also untested, 
> copy-paste-modify, ...)

No, that doesn't do the same thing.
The modified code will do something1, then fall through to do something2 
(without having incremented tNext), then fall through to do something3, 
then increment tNext, then go round the loop and execute something2 again.

I think you would need to have a "break" at the end of each case section 
for this to work properly - and once you do that, it is no shorter than 
my original. (in fact marginally longer, because it also has the "add 1 
to tNext" outside the switch).

> function doIt  a, b, c
>   put 1 into tNext
>
>   repeat while tNext < 4
>     try
>       switch tNext
>       case 1
>         something1  a, b, c
>       case 2
>         something2  a, b, c
>       case 3
>         something3  a, b, c
>       end switch
>     catch e
>       if e  is not "123" and e is not "1234" then throw e
>     end try
>
>     add 1 to tNext
>   end repeat
> end doIt
>
> On Mar 4, 2005, at 10:37 AM, Alex Tweedly wrote:
>
>> N wrote:
>>
>>> Okay this is a really strange question.  I have several statements 
>>> all of which could possibly "throw" a 'RR' exception.  However, I 
>>> would like to evaluate the error and if it was "expected" continue 
>>> processing at the next statement.  This would be simular to the On 
>>> Error Resume Next and On Error Resume is Visual Basic 6.x.  I am 
>>> fully aware of try catch construct I just do not wish to wrap a try 
>>> catch block around every individual method invovation.
>>>
>>>
>>> Example expected behavior:
>>>
>>> function doIt aParameter
>>>
>>>  try
>>>    something a, b, c
>>>  catch e
>>>    if e Is not "123" then throw e
>>>  end try
>>>
>>> try
>>>    something2 a, b, c
>>>  catch e
>>>    if e Is not "1234" then throw e
>>>  end try
>>>
>>> end function
>>> Prefered Behavior:
>>>
>>> function doIt a
>>>
>>>  try
>>>    something 1, 2 ,3 , 4
>>>    something1 a, b,c  catch e
>>>    if e is not "123" and e is not "1234" then throw e
>>>    resume next
>>>  end try
>>> End function
>>
>> It ain't pretty, but how about   (typed, not tested)
>>
>> function doIt  a, b, c
>>  local tNext
>>  put 1 into tNext
>>  repeat forever
>>     try
>>      switch tNext
>>       case 1
>>          add 1 to tNext
>>          something1  a, b, c
>>      case 2
>>          add 1 to tNext
>>          something2  a, b, c
>>      case 3          add 1 to tNext
>>          something3  a, b, c
>>       default
>>          exit repeat
>>    end switch
>>    catch e
>>       if e  is not "123" and e is not "1234" then exit repeat
>>   end try
>> end repeat
>>
>>
>> -- 
>> Alex Tweedly       http://www.tweedly.net
>>
>>
>>
>> -- 
>> No virus found in this outgoing message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.308 / Virus Database: 266.6.0 - Release Date: 02/03/2005
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>>
> - -----------------------------------------------------------
> Frank D. Engel, Jr.  <fde101 at fjrhome.net>
>
> $ ln -s /usr/share/kjvbible /usr/manual
> $ true | cat /usr/manual | grep "John 3:16"
> John 3:16 For God so loved the world, that he gave his only begotten 
> Son, that whosoever believeth in him should not perish, but have 
> everlasting life.
> $
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.4 (Darwin)
>
> iD8DBQFCKIcv7aqtWrR9cZoRAkeTAJ9bqxfxSNVmaXldk7ENfbE65Z7yygCfadGW
> malp5k2ekxf38FF0IG3gvTE=
> =2oj3
> -----END PGP SIGNATURE-----
>
>
>
> ___________________________________________________________
> $0 Web Hosting with up to 120MB web space, 1000 MB Transfer
> 10 Personalized POP and Web E-mail Accounts, and much more.
> Signup at www.doteasy.com
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>


-- 
Alex Tweedly       http://www.tweedly.net



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.6.0 - Release Date: 02/03/2005



More information about the use-livecode mailing list