John J Barton wrote:
On Thu, Dec 20, 2012 at 12:38 PM, Brendan Eich <[email protected] <mailto:[email protected]>> wrote:

    John J Barton wrote:

        Java is one example of a language that supports non-error uses
        of the try/catch exception mechanism. Part of that support
        includes a way for debuggers to distinguish errors uses from
        non-error uses. Encouraging additional non-error use


    Again, I object. StopIteration is not "encouraging additional
    non-error [uses of try/catch]" outside of specialized,
    written-by-experts libraries such as http://taskjs.org/.

    The exceptions-are-not-all-errors cat is out of the bag. You don't
    seem to agree but you haven't rebutted directly. I cry foul.


But I do agree! It's Claude that proposes to release the cat. It's Claude proposal we are discussing, not StopIteration, you've already declared it out of bounds.

I will avoid taking the StopIteration bait liberally sprinkled amidst the discussion :-P.

I would not say anything is "out of bounds", but StopIteration is just an example of non-error exceptions. It may stand out to some (we've shipped it since 2006 without a lot of pain on the debugger side -- or any, from my view of bugzilla [let me know if I missed a bug]) but the general ability to throw any value for dynamic control effects has been around since 1999, and it does see some use in the field.

So perhaps I'm just fussing over a point of order, but these fine points seem important to strive to agree on, or disagreement will spring up again based on different assumptions.



        of the JavaScript try/catch mechanism without a similar means
        to separate them from error uses


    Again, without a type system, how?


Hmm: maybe some as trivial as a property 'isNotException'. Mandated on StopIteration, allowed on user objects.

Don't you mean isNotError or isNotErrorException?

Would you put it on Object.prototype?

It seems to me the (e instanceof Error) test is better, but there could be a duck-typing convenience. Perhaps "isErrorException" would be best, so you don't need to ensure it exists -- then the default undefined value converts to false. Perhaps there's a better name. We should focus on this if it's what you seek.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to