I think we want `implements Exception` here. `Error` is more for programmatic errors - things like asserts.