Nested DO ON-ERROR scripts

I tried it at the end of my code where it is commented, without comments, that part would be:

        : if ($newip != $oldip) do={
            :set newip [:resolve $comment]
            /ip firewall address-list set $i address=$newip
        } on-error={};

Like this but all that in it’s parent loop, should that work ?
I have another topic on this: http://forum.mikrotik.com/t/error-expected-end-of-command-when-trying-on-error/173368/1