r88392 removed the console.log(e) and added a throw. Which made it trigger debug workflows for exceptions in all debuggers (instead of just Firebug), but also made it catchable from unit tests such as QUnit. r112451 removed the throw leaving no debug hook for exceptions and this revision re-adds the console log line.
I'll check out if it's a problem to throw exceptions from execute() (which r88392 intended to do and was reviewed), if it's ok I'll swap it for throw again, okay ? (effectively re-applying r88392)
Yes, I think rethrowing the exception is the best option, at least in the short term. In theory, it's possible to catch exceptions to allow unrelated modules to continue to work, but the existing code is not sufficient to make that happen. The whole loop in handlePending() is aborted when an exception is thrown, but the module responsible is does not have its state set to "error", only the innocent module which called execute()
...is set to "error". Support for requests for modules with dependencies that have errors does not seem to be fully implemented. At least rethrowing the exception will cleanly stop processing.