showException should show the exception class
Some errors should be shared.

Honestly, I don't know if catching any exceptions is correct behavior
here. It seems like most errors would want to be caller-handleable.
Default command support + Interrupt handling added.

Also added an exception type to throw for commands that are not
recognized.