Для того, что я знаю, вы используете проверенные исключения, если у вас есть ошибка, из которой ваше приложение может восстановить. Однако некоторые ошибки, возникающие в моем приложении, не соответствуют исключениям, которые уже сделаны Sun. Можно ли создавать проверенные исключения для домена (неправильная практика?)? Например: DuplicateQuestionException -> брошено, когда приложение получает два одинаковых вопроса. Это случай, когда мое приложение может восстановиться.Создание собственных проверенных исключений
ответ
да это - хорошая практика. не пытайтесь принудительно использовать существующее исключение, если оно не имеет смысла в вашем домене.
Да, лучше ли вы создать собственное исключение, а не использовать исходное исключение. и когда вы будете создавать свои собственные исключения, не забывайте об иерархии исключений.
Да, полезно использовать проверенные исключения, когда приложение может обоснованно восстанавливаться, и это совершенно разумно и указано, чтобы использовать пользовательские проверенные исключения, когда Java не обеспечивает подходящие.
пролив от Эффективного Java второго издания Джош Блох:
из пункта 58 о метательных проверяемых исключениях:
«Правило кардинального при принятии решения, следует ли использовать проверенный или непроверенный исключение заключается в следующем: использовании проверенные исключения для условий, из которых можно ожидать, что вызывающий абонент может восстановиться ».
из пункта 60 о расширении существующих исключений:
«Кроме того, не стесняйтесь подклассом существующего исключения, если вы хотите добавить немного больше информации отказа захвата.»
- 1. создание моих собственных исключений C#
- 2. Использование переустановленных проверенных/непроверенных исключений?
- 3. Автоматическое добавление/удаление проверенных исключений при прототипировании
- 4. Обработка проверенных исключений для плагина eclipse
- 5. Создание собственных разрешений
- 6. Создание собственных итераторов
- 7. Создание собственных свойств
- 8. Создание собственных обратных вызовов
- 9. Рекомендации по определению собственных классов исключений?
- 10. Hows Исключительный объект преобразуется в одну из проверенных Java исключений?
- 11. CakePHP: создание моих собственных функций
- 12. создание собственных классов в ДИ
- 13. PowerShell: Создание пользовательских исключений
- 14. Создание настраиваемого класса исключений
- 15. Повторные метаданные исключений при проверке исключений в качестве отмеченных исключений
- 16. объем рейза исключения, обработки собственных исключений в коде PLSQL
- 17. Использование собственных исключений в wse, а не только SoapException
- 18. XML-альтернатива для @Repository для перевода собственных исключений из DataAccessException
- 19. Создание собственных структур данных карт и карт
- 20. Создание собственных скинов эмулятора в Android
- 21. Создание собственных классов C# из IronPython
- 22. Переключение смены селена Java или создание собственных
- 23. Перегрузка APK и создание собственных приложений
- 24. Является ли законным создание собственных атрибутов CSS?
- 25. Создание собственных ключевых слов в java?
- 26. Создание собственных тегов с заменой preg
- 27. Создание собственных пользовательских помощников с помощью Freemarker?
- 28. Создание собственных редиректов и дублирующих функций труб
- 29. C++ fstream - создание собственных флагов форматирования
- 30. Создание собственных изображений за пределами кэша
Да. Это прекрасно. Что будет хорошо, чтобы узнать, как вы создали собственное исключение? –
Хорошая практика создания определенных пользователем исключенных исключений, из которых вы можете восстановить и продолжить код приложения. – clinton
Вместо этого вы можете указать способ проверки, есть ли в наличии вопрос: if (! Questions.isDuplicate (newQuestion)) {Questions.add (newQuestion); } 'и выбросить исключенное исключение, например,' IllegalArgumentException', если создается дублирующий вопрос. Это может быть неприменимо к вашему случаю использования. – assylias