Monday, November 19, 2012

Breaking Change! Exception no Longer has a Const Constructor

Lasse Nielsen writes:
Exceptions, unlike Errors, are intended to be caught and pass useful and accessible information to the catcher. That makes "new Exception('here be dragons')" pretty useless. We considered removing the constructor completely, but decided to hang on to it for now for its one redeeming usage: As a stand-in for a more specific Exception while developing.

So, consider the Exception constructor deprecated in finished code, and a sign of a partially implemented system (just as UnimplementedError). We have our share of them in samples, packages and libraries, but hopefully we'll find something better to throw.

The only visible change is that Exception is no longer const - it's now as primitive as it can get, and that's the way we want it :)

Change landed in r15077.
As always, we invite you to join our Dart mailing list, ask questions on Stack Overflow, or file feature requests on dartbug.com.