I assume LJ::Error is where LJ::throw comes from? I copied it from seeing it in innumerable other places, I'm afraid there's no rationale beyond that.

TBH, I've seen a number of different ways of error handling around the codebase, and I'd love guidance on the best way for new stuff to be doing it :-)