Я пишу небольшую библиотеку, в которой мне нужно получить доступ к нескольким разным типам файлов.Хотя сам метод доступа различен для каждого типа файлов, похоже, у них много общего, и я поместил интерфейс в иерархию классов, в которой я написал метод, который должен подключаться к источнику данных.
Однако, поскольку источник данных может быть защищен паролем и / или разрешением пользователя, иногда ему требуется аутентификация для извлечения данных.Мои вопросы:
Это хорошая идея, чтобы генерировать исключение, когда требуется аутентификация?
Поскольку я хочу раскрыть реализацию как можно меньше, я толькохочу рассказать пользователю, что случилось.Но для аутентификации может потребоваться много разных вещей (имя пользователя, пароль и т. Д.), Поэтому могу ли я упаковать их в одно исключение и выбросить ?Или, может быть, есть лучший способ, не прибегая к исключениям , поскольку «Требуется аутентификация» на самом деле не исключительное поведение, которое обычно используется для обработки исключения.
Чтоисключение, чтобы бросить, когда требуется аутентификация?
Теперь предположим, что я решил использовать исключение для обработки этого.Какое исключение я должен выбросить?Несколько AuthenticationException
, поставляемых с Java API, похоже, не соответствуют этому требованию, поскольку все они, похоже, очень специфичны для конкретного случая, например, используются в службе именования.Я не уверен, если SecurityException
- это путь, но если это неправильно, я все еще действительно не хочу бросать свое собственное исключение, так как это помешает другим людям понять мой код и то, что происходит за API.
Спасибо за любой вклад!Это несколько длинно или, возможно, слишком многословно, поэтому любые изменения, которые могли бы улучшить вопрос, приветствуются.