I'm pretty used to seeing strings being thrown. Maybe I am just old?
For old times sake.. https://stackoverflow.com/questions/1382107/whats-a-good-way...
Old it is I guess - both of us.
More generally I wish there was an Error constructor that automatically records and the function, arguments, and other semantically meaningful information when called. File and line numbers do not make for a pleasant experience when inspecting a stack trace.