Давайте предположим, что у нас есть класс, который запустить приложение (назовём его Main класс) и вызов бизнес-логики класса (назовём его Logic класс). Класс Основной отвечает за связь с пользователем.Исключение обработки сообщений
Logic класс бросает некоторые SpecificException который перехватывается Main. Это исключение может иметь сообщение плюс некоторые специфические информация, которая может быть выгодна.
Давайте рассмотрим несколько сценариев.
- Определим сообщение и specificInfomation полей в SpecificException, заполнить эти параметры, когда это исключение и объединить сообщение для пользователя в Main на основе введенных полей.
- Определит только сообщения поля в SpecificException и построить сообщение вместе с конкретной информации где отбрасываются это исключение. В Main мы просто печатаем сообщение.
- Определим сообщение и specificInformation полей в SpecificException, но они используются только журнал информации, содержащейся в Main, сообщение для пользователя строится отдельно.
Какой лучший выход из этих трех?Или, может быть, вы могли бы предоставить свой собственный?
Сообщение для людей, чтобы читать. Если этого достаточно, не используйте поля. Если вы фактически написали фактическую информацию позже, используйте поля. В случае «может быть полезно» не делайте этого, пока у вас не будет варианта использования для необходимых значений позже. –
В этом случае возникает вопрос, следует ли отличать пользователей и разработчиков и иметь для них отдельные сообщения. – Rufi
Пользователи никогда не должны видеть сообщения трассировки стека. Это для разработчиков. –