Лучший метод для распространения исключений в пользовательском интерфейсе?

#exception

Вопрос:

У меня есть вопрос о дизайне обработки исключений:

Я создаю приложение, которое взаимодействует с другими приложениями. Я хочу, чтобы некоторые из исключений, которые я получаю, были каким-то образом показаны пользователю (более одного варианта), некоторые будут записаны в журнал. У меня есть несколько типов исключений: например, если приложение, с которым я общаюсь, возвращает ответ, этот ответ может быть исключением, которое оно получило внутренне. Другим исключением может быть связь между моим приложением и другим приложением.

Каков будет лучший способ создать мою семейную иерархию исключений?

Я подумал о 2 вариантах:

  1. Создайте пользовательское исключение, которое расширит исключение, в котором будут члены, указывающие на источник, код ошибки, действие и т.д.
  2. Создайте иерархию исключений: например, если я хочу сопоставить все мои исключения с пользовательскими и системными, я получу другие пользовательские классы исключений из этих классов и буду использовать эту иерархию для распространения исключений.

Спасибо!

Комментарии:

1. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.