IMO throwing exception is better than silent overwritting. Having an Unregister method will allow developer to unregister and register a new content reader if he will want to replace it.