There are methods of the MetadataProvider interface that are entitled to authorize the subscription which can return errors that will be communicated by the server to the client.
In particular notifyNewTables, getItems, and getSchema.

Once validated by the Metadata the subscription is considered appropriate and correct therefore an error in the subscribe is something unexpected and not pertaining to the client.
If you really want to communicate errors to the clients in this phase you have to do it applicatively, that is, do not throw the exception but send special updates with the errors.

Regards,
Giuseppe