From: Allen Wirfs-Brock <[email protected]>

> If you invert things you can think of "invalid operation" as trying to apply 
> a valid operation upon the "wrong kind of object" so TypeError is a plausible.

This seems like a stretch :P. Are there existing instances in the ES spec of 
this kind of use? I guess maybe trying to write to a non-writable property in 
strict mode and the like.

> In practice, where would throwing OperationError instead of TypeError 
> actually make any difference.  How would you handle one differently from the 
> other?

In practice it makes almost no difference, just like all other ECMAScript error 
type discrimination. It just seems that when a user sees `TypeError` in a stack 
trace, they expect to find some kind of argument validation problem.

(Maybe once we get pattern-matching `catch` clauses it would matter more. E.g. 
people could purposefully try to catch `OperationError`s from such operations, 
and handle them differently, leaving `TypeError`s etc. to bubble outward and 
hit a top-level exception handler as "truly unexpected." But that's a ways off.)

---

Sounds like `TypeError` is probably the way to go, even if it feels a bit off.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to