One benefit of StopIteration is that code inside map/some/every etc
can just throw a StopIteration to stop the iteration.  The same thing
is harder to keep clean with a hasNext/next pattern.

On Nov 16, 2007 5:30 PM, Garrett Smith <[EMAIL PROTECTED]> wrote:
> Which is better?
>
> var nodes : int;
> var widgetMap = Widget.instances; // a map.
> var it:Iterator<string> = widgetMap.getKeys();
>
>  -- this: --
>
> try {
>   widgetMap.get(it.next()).hide();
> }
> catch(Exception e) {
>   if(e instanceof StopIteration) {
>
>   }
> }
>
>
>  -- or this: --
>
> while(it.hasNext()) {
>   widgetMap.get(it.next()).hide();;
> }
>
> It might be the case that there might be some error
> I want to catch other than StopIteration. In that case, to be
> backwards-compatible and work across implementations, the developer
> must use conditional
> checks inside 1 catch block.
>
> A hasNext() would not prevent the developer from writing such code.
> Omitting hasNext() forces developers to use exception handling for
> non-exceptional condition.
>
> How does using try/catch for normal termination of the loop look?
>
> It looks like all exceptions are unchecked in ES4. correct?  (I cannot
> verify this to be true because
> I am unable to access the spec namespace on ecmascript.org.)
> _______________________________________________
> Es4-discuss mailing list
> Es4-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es4-discuss
>



-- 
erik
_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to