- From: Cameron McCormack <cam@mcc.id.au>
- Date: Tue, 21 Dec 2010 09:14:12 +1300
- To: Ian Hickson <ian@hixie.ch>
- Cc: public-script-coord@w3.org
Ian Hickson:
> IMHO using different codes is more important than using different
> interfaces since the usual pattern is just to check e.code in the handler.
> Having to check e.code and the interface type makes things twice as
> complicated.
I forgot to mention in the original email that you could do this based
on the .name property, since it will contain the exception name (per the
built-in Error types in ECMAScript). So:
try {
// whatever
} catch (e) {
if (e.name == "DatabaseConnectionError") {
// blah
}
}
rather than:
try {
// whatever
} catch (e) {
if (e.code == DBException.DATABASE_CONNECTION_ERR) {
// blah
}
}
These names are necessarily unique, so it is not necessary to check
e instanceof DatabaseConnectionError *and* e.name ==
"DatabaseConnectionError".
> Having to make sure all the spec writers for Web platform specs
> communicate is *not a bug*. It's absolutely imperative not just for making
> sure exception codes don't overlap (something that really hasn't been much
> of a problem in practice since we have a de-facto registry that we use for
> the purpose) but simply for making sure the platform remains sane! I think
> it would be a mistake to make it easier for Web platform spec writers to
> isolate themselves from the rest of the ecosystem.
I don’t know where “making it easier for Web platform spec writers to
isolate themselves” lies in the priority of constituencies, but I
suspect designing for consistency with ECMAScript and for authors’ ease-
of-use comes higher.
Note that awareness of what exceptions have been defined in other Web
platform specs is required to avoid collisions in this proposal anyway.
(As with interfaces.)
--
Cameron McCormack ≝ http://mcc.id.au/
Received on Monday, 20 December 2010 20:14:56 UTC